【发布时间】:2014-05-09 23:34:54
【问题描述】:
我有一个 UITableView,其中的原型单元格上有一个 UISwitch。当用户点击任何特定单元格上的开关时,我需要确定我的数据源中的哪个对象已切换其开关。
这是我的切换方法:
- (IBAction)completeSwitchTapped:(id)sender {
UITableViewCell *cell = (UITableViewCell *)[sender superview];
NSIndexPath *indexPath = [self.itineraryTableView indexPathForCell:cell];
NSLog(@"cell row is: %d in section: %d", indexPath.row, indexPath.section);
}
但这总是返回第 0 部分中的第 0 行,无论选择哪一行或部分。
如何正确返回包含开关的正确单元格?显然[sender superview] 不起作用,我对如何引用单元格感到不知所措。
谢谢!
【问题讨论】:
-
你检查你的视图层次了吗?确保您的
UISwitch是单元格的子视图? -
如果你记录单元格,你会发现它实际上不是一个 UITableViewCell。
-
用对你有意义的标识符设置开关的
tag。 -
扩展 rdelmar 的评论:
sender是UISwitch类型的对象,而不是UITableViewCell类型的对象。记住这一点,已经给出的答案可能更有意义。
标签: ios uitableview uiswitch