我的UITableView的每个单元格中都有一个按钮,但是当按钮被触发时,我想找出它里面的单元格。我可以使用一个标签,或者将按钮子类化并为其添加一个indexPath,但是当我删除或添加单元格时,问题就出现了,我必须跟上更新所有这些按钮。还有其他人可以想到做得好吗?
答案 0 :(得分:2)
使用UITableView
的{{1}}方法。它需要一个单元格,并为您提供单元格的索引路径。
答案 1 :(得分:2)
UITableViewCell * cell = (UITableViewCell*) button.superview;
NSIndexPath * indexpath = [myTableView indexPathForCell:cell]
答案 2 :(得分:2)
试试这个
- (void) buttonAction:(id)sender{
UIButton *buttonInCell = (UIButton *)sender;
NSIndexPath *indexPathOfCell = [self.yourTable indexPathForCell:
(UITableViewCell *)[[buttonInCell superview] superview]];
}
其中buttonInCell持有发送者Button和indexPathOfCell保存具有触发操作的特定按钮的Cell的indexPath值
以上方式可能不适用于iOS 7
<强>更新强>
- (void)buttonAction:(id)sender {
UIButton *buttonInCell = (UIButton *)sender;
CGPoint center= buttonInCell.center;
CGPoint rootViewPoint = [buttonInCell.superview convertPoint:center toView:self.yourTableView];
NSIndexPath *indexPath = [self.yourTableView indexPathForRowAtPoint:rootViewPoint];
NSLog(@"%@",indexPath);
}