我有一个UITableView myTable,其中每行都有UISwitch。如何知道哪个行在UITableView中打开
我如何找到表的行数开关被我switchChanged方式有何变化?
- (void) switchChanged:(id)sender {
UISwitch* mySwitch = sender;
NSLog(@"%d", mySwitch.on);
}
谢谢
我有一个UITableView myTable,其中每行都有UISwitch。如何知道哪个行在UITableView中打开
我如何找到表的行数开关被我switchChanged方式有何变化?
- (void) switchChanged:(id)sender {
UISwitch* mySwitch = sender;
NSLog(@"%d", mySwitch.on);
}
谢谢
一个建议可能是使用的代码。
当您安装在cellForRowAIndexPath:
与开关单元可以设置开关标签的行值。这样,你可以再次读出的标签,并获得该行和项目...
如果你只有一个部分(或只是一个部分,使用该方法的开关),你可以存储在交换机上的行数tag
属性。或者,如果将自己限制在合理数量的部分和行中,则可以将标记号存储在高位N位,并将行号存储在标记整数的低位M位(N + M < 32以获得最佳结果)。
或者你可以使用superview
从开关,直到你找到的UITableViewCell(使用isKindOfClass:
测试),然后用indexPathForCell:
在表视图,找到索引路径。
或者你可以继承UISwitch有存储索引路径的属性。
或者你可以使用objc_setAssociatedObject
到指数路径与交换机关联。
工程很棒。谢谢 – tiw 2011-03-19 20:07:36