我有一个包含四行的 UITableView。每行都有一个带有 DCRoundSwitch 的自定义单元格。value-changed 事件在 IB 中链接到 switchChanged 方法。每次在 cellForRowAtIndexPath 中需要一个带有开关的新单元时,我都会将新单元的开关分配给 ivar,这样我就可以像这样以编程方式控制它:
self.categorySwitch = ((FilterViewCell *)cell).sectionSwitch;
在我第一次触摸开关后它完美地工作,触发了 switchChanged 方法。
问题:每次需要一个新的单元格或重新加载表时,它都会触发switchedChanged 方法而不接触开关。我已经尝试像这样在 switchChanged 方法的末尾删除所有目标,但它仍然不起作用:
[theSwitch removeTarget:nil action:NULL forControlEvents:UIControlEventAllEvents];
这可以完美地使用 UISwitch。
有什么建议么?DCRoundSwitch 似乎是一个很好的选择,我想使用它。
谢谢