Ios UISwitch决定另一个UITableViewCell是否可编辑
我在一个分区中有三个自定义表视图单元格。第一个单元格有一个Ios UISwitch决定另一个UITableViewCell是否可编辑,ios,swift,uitableview,uitextfield,uiswitch,Ios,Swift,Uitableview,Uitextfield,Uiswitch,我在一个分区中有三个自定义表视图单元格。第一个单元格有一个UISwtich。我想要的是,当UISwitch打开时,其他两个表视图单元格的UITextField可编辑,否则不可编辑。 有可能吗?您可以通过在交换机中添加一个侦听器,检查其状态,并从此处设置两个文本字段的可编辑性来完成此操作: // This goes into your viewDidLoad sw.addTarget(self, action: Selector("stateChanged:"), forControlEvents
UISwtich
。我想要的是,当UISwitch
打开时,其他两个表视图单元格的UITextField
可编辑,否则不可编辑。
有可能吗?您可以通过在交换机中添加一个侦听器,检查其状态,并从此处设置两个文本字段的可编辑性来完成此操作:
// 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
是两个表单元格中引用UITextField
的出口。嘿,您可以执行以下操作:1.将选择器添加到开关
2。选择器中的将变量设置为0(如果开关打开)和1(如果开关关闭)。
3。然后调用tableview的重新加载数据方法
4。然后在“行单元格”方法中,使用我们设置的变量检查开关是否打开,如果开关打开,则将“单元格文本字段可编辑”设置为true或false 它是一个自定义表视图单元,因此没有viewDidLoadMethod@Dereck然后,您可以将其放入表的视图控制器的
viewdiload
中。如果我在tableviewcontroller中设置目标,它将编译,但状态更改不会得到调用。但是,当我使用awakeFromNib()在自定义表单元格类中设置目标时,它确实会被调用但是编辑没有改变。我用设置目标的开关在customtableclass中创建了custometablecell类1和2的出口。@Dereck这很奇怪,当您从tableviewcontroller的viewDidLoad
设置侦听器时。你的viewDidLoad
确实被调用了,对吗?在这种情况下,stateChanged
函数应该属于视图控制器,而不是单元格。