我如何知道点击UItableview中的Cell按钮

时间:2012-07-17 00:23:30

标签: ios uitableview

我有一个带有自定义Cell的UITableView(UITableViewCell的子类)。每个单元格视图都有两个按钮btn1和btn2。我设置了我的ViewController来处理那些btn1s的TouchUp Inside。

如何知道单击了哪个单元格按钮?

2 个答案:

答案 0 :(得分:1)

我在其上放置了一个标签属性。假设左边的标签为1,右边的标签为2。 所有UIView都有一个tag属性,它只是一个整数值。

@property (nonatomic) NSInteger tag;

然后,当您收到按钮时,您可以询问按钮的标签是什么 - 1或2,并且您知道它是哪个按钮。

如果你想知道该按钮属于哪个索引路径,你可以抓住按钮的超级视图,它应该是单元格,或按钮的超级视图的超级视图,如果你放置的话它在单元格的内容视图中(通常应该如此):

UITableViewCell *cell = (UITableViewCell *)[button superview];
NSIndexPath *pathForSelectedButton = [tableView indexPathForCell:cell];

请注意,上面的代码假定按钮直接放在单元格上。

答案 1 :(得分:1)

UIButton有一个标签属性。您可以为每个按钮设置唯一值,例如indexPath.row * 2和indexPath.row * 2 + 1(如果只有一个部分)。

然后您可以为每个按钮添加目标方法。

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]

最后,实现像

这样的buttonPressed方法
- (void)buttonPressed:(UIButton *)sender {
    NSInteger tag = sender.tag;
    // your code here.
}