我有一个UITableView myTable,每行都有UISwitch。
如何在switchChanged方法中找到更改开关的表的行号?
- (void) switchChanged:(id)sender {
UISwitch* mySwitch = sender;
NSLog( @"%d", mySwitch.on );
}
谢谢
答案 0 :(得分:1)
一个建议可能是使用标签。
使用cellForRowAIndexPath:
中的开关设置单元格时,可以将开关标记设置为行值。这样你就可以再次读出标签并得到行和项......
答案 1 :(得分:0)
如果您只有一个部分(或只有一个部分使用该方法的交换机),您可以将行号存储在交换机的tag
属性中。或者,如果您将自己限制为合理数量的部分和行,则可以将部分编号存储在高N位中,将行编号存储在标记整数的低M位中(N + M <32以获得最佳结果)。 / p>
或者您可以使用交换机中的superview
,直到找到UITableViewCell(使用isKindOfClass:
进行测试),然后在表视图上使用indexPathForCell:
来查找索引路径。
或者您可以将UISwitch子类化为具有存储索引路径的属性。
或者您可以使用objc_setAssociatedObject
将索引路径与交换机相关联。