我有一个UITableView。每行有5行和4个按钮。当用户点击按钮时,我想要检索行ID。
我使用UITapGestureRecognizer
来识别所选的按钮。现在我想找到按钮所在的行。
我想使用cell.myButton.tag = indexRow.row;。但是,我无法从ImageTapped
方法接收它。有人可以帮我吗 ?
以下代码是cellForRowAtIndexPath
的一部分
的的cellForRowAtIndexPath
UITapGestureRecognizer *tap = nil;
tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ImageTapped:)];
[cell.myButton addGestureRecognizer:tap];
......对于其他按钮也是如此。
ImageTapped 方法
- (void) ImageTapped:(UITapGestureRecognizer *) recognizer {
if(recognizer.state == UIGestureRecognizerStateEnded)
{
}
}
答案 0 :(得分:0)
首先,为什么你要使用手势,不需要添加手势。你可以使用addTarget
方法来做这件事。
使用此方法cellForRowAtIndexPath
:
myButton.tag = indexPath.row;
[myButton addTarget:self action:@selector(ImageTapped:) forControlEvents:UIControlEventTouchUpInside];
你可以使用这种方法:
- (void) ImageTapped:(id) sender {
int rowId = [(UIButton *)sender tag];
}
其他明智的你可以这样:
cell.myButton.tag = indexPath.row;// In cellForRowAtIndexPath Method
- (void) ImageTapped:(UITapGestureRecognizer *) recognizer {
if(recognizer.state == UIGestureRecognizerStateEnded)
{
int rowId = recognizer.view.tag;
}
}
答案 1 :(得分:0)
按钮将是小区的后代孩子。所以你可以使用以下代码获取单元格:
id view;
while (![(view = button.superView) isKindOfClass:[UITableViewCell class]]) ;
// now view will be the parent cell.