UITableViewCell内的按钮 - 我如何找出它里面的单元格?

时间:2012-03-22 12:05:12

标签: iphone objective-c uitableview

我的UITableView的每个单元格中都有一个按钮,但是当按钮被触发时,我想找出它里面的单元格。我可以使用一个标签,或者将按钮子类化并为其添加一个indexPath,但是当我删除或添加单元格时,问题就出现了,我必须跟上更新所有这些按钮。还有其他人可以想到做得好吗?

3 个答案:

答案 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); 
}