2011-03-19 79 views
1

我有一个UITableView myTable,其中每行都有UISwitch。如何知道哪个行在UITableView中打开

我如何找到表的行数开关被我switchChanged方式有何变化?

- (void) switchChanged:(id)sender { 
    UISwitch* mySwitch = sender; 
    NSLog(@"%d", mySwitch.on); 
} 

谢谢

回答

1

一个建议可能是使用的代码。

当您安装在cellForRowAIndexPath:与开关单元可以设置开关标签的行值。这样,你可以再次读出的标签,并获得该行和项目...

+0

工程很棒。谢谢 – tiw 2011-03-19 20:07:36

0

如果你只有一个部分(或只是一个部分,使用该方法的开关),你可以存储在交换机上的行数tag属性。或者,如果将自己限制在合理数量的部分和行中,则可以将标记号存储在高位N位,并将行号存储在标记整数的低位M位(N + M < 32以获得最佳结果)。

或者你可以使用superview从开关,直到你找到的UITableViewCell(使用isKindOfClass:测试),然后用indexPathForCell:在表视图,找到索引路径。

或者你可以继承UISwitch有存储索引路径的属性。

或者你可以使用objc_setAssociatedObject到指数路径与交换机关联。

相关问题