我有一个带有原型单元格的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]
无法正常工作,我对于如何引用该单元格相当困惑。谢谢!
最佳答案
尝试这样的事情:
UIView *superview = sender.superview;
while (![superview isKindOfClass:[UITableViewCell class]] && superview.superview != nil) {
superview = superview.superview;
}
NSIndexPath *indexPath = [self.itineraryTableView indexPathForCell:superview];
关于ios - 如何确定已轻按的开关的单元格的indexPath?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23575513/