【发布时间】:2015-09-30 00:29:58
【问题描述】:
我在一个部分中有三个自定义表格视图单元格。第一个单元格有一个UISwtich。我想要的是,当UISwitch 是ON 时,其他两个表格视图单元格的UITextField 是可编辑的,否则不可编辑。
有可能吗?
【问题讨论】:
标签: ios swift uitableview uitextfield uiswitch
我在一个部分中有三个自定义表格视图单元格。第一个单元格有一个UISwtich。我想要的是,当UISwitch 是ON 时,其他两个表格视图单元格的UITextField 是可编辑的,否则不可编辑。
有可能吗?
【问题讨论】:
标签: ios swift uitableview uitextfield uiswitch
您可以通过向开关添加监听器、检查其状态并从那里设置两个文本字段的可编辑性来做到这一点:
// This goes into your viewDidLoad
sw.addTarget(self, action: Selector("stateChanged:"), forControlEvents: UIControlEvents.ValueChanged)
// This function does the work
func stateChanged(switchState: UISwitch) {
if switchState.on {
textField1.editable = true
textField2.editable = true
} else {
textField1.editable = false
textField2.editable = false
}
}
我假设 textField1 和 textField2 是在您的两个表格单元格中引用 UITextFields 的网点。
【讨论】:
viewDidLoad 中。
viewDidLoad 设置侦听器时。你的viewDidLoad 确实被调用了,对吧?在这种情况下,stateChanged 函数也应该属于视图控制器,而不是单元格。
您可以执行以下操作:
1.将选择器添加到您的开关。
2。选择器中的变量设置为 0 如果开关打开,1 如果开关关闭。
3.然后调用 tableview 的 reload data 方法。
4。然后在行方法的单元格中,使用我们设置的变量检查开关是否打开,如果开关打开,则单元格文本字段可编辑为 true,否则为 false。
【讨论】: