0

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

我怎么知道点击了哪个单元格按钮?

4

2 回答 2

1

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

@property (nonatomic) NSInteger tag;

然后当你收到一个按钮点击时,你可以询问按钮的标签是什么 - 1 或 2,你就会知道它是哪个按钮。

如果您想知道该按钮属于哪个索引路径,您可以抓取按钮的超级视图,它应该是单元格,或者按钮的超级视图的超级视图,如果您将它放在单元格的内容视图上(通常应该):

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

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

于 2012-07-17T00:35:57.320 回答
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.
}
于 2012-07-17T00:39:03.457 回答