我有一个UITableView
,其中包含可变数量的单元格,每个单元格都有一个UISwitch
。以下是所有开关的行:
[cell.currentSwitch addTarget:self action:@selector(changeCurrentEvent:) forControlEvents:UIControlEventValueChanged];
我设置了当你翻转一个开关时,它会关闭所有其他开关(在-changeCurrentEvent:
内)。我注意到的是,当我手动翻转开关时,-changeCurrentEvent:
被正确调用,但由于它关闭了所有其他的,因此改变了它们的价值,他们每个人都不应该调用-changeCurrentEvent:
?无论如何,这就是我希望他们做的。
答案 0 :(得分:0)
仅当用户操作更改控件时才会发送控制事件(例如,在切换的情况下点击)。如果您要更改代码中的值,则不会发送它们。
这很好地避免了无限循环情况,其中控件更新以响应其他控件更改,这会导致其他控件更改...
-changeCurrentEvent:
的实施应对模型进行所有必要的更改,以响应单个开关的更改。