我有一个带有自定义Cell的UITableView(UITableViewCell的子类)。每个单元格视图都有两个按钮btn1和btn2。我设置了我的ViewController来处理那些btn1s的TouchUp Inside。
如何知道单击了哪个单元格按钮?
答案 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.
}