向单元格添加按钮

时间:2013-10-22 11:59:16

标签: ios uitableview uigesturerecognizer

我有下一个自定义单元格:

enter image description here

当我填满我的桌子时,我这样做:

 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
cell.iboPopImage.userInteractionEnabled = YES;
[cell.iboPopImage addGestureRecognizer:singleTap];

我将点击事件添加到此高亮显示的图像中。

这是功能事件:

我想将单元格索引传递给它,因此我可以使用所需的单元格进行操作

-(void)tapDetected:(NSInteger *)index
{
    //Some code to do
}

但它不允许我这样写:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:indexPath.row)];

如何解决?

2 个答案:

答案 0 :(得分:1)

使用手势识别器时,您无法选择它将调用的操作方法的格式,方法应为:

- (void)tapDetected:(UITapGestureRecognizer *)sender

然后,您可以使用sender来获取被点击的视图(然后可能会获得其tag)。

P.S。多数民众赞成@selector(tapDetected:)

答案 1 :(得分:0)

执行以下操作,在您的界面中:

@interface viewcontroller : UITableViewController
{
 int indexpathRow;
}

-(void) getIndex:(int)getRow;

然后在您的.m文件中,在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中,调用[self getIndex:indexPath.row];。然后获取索引路径:

-(void) getIndex:(int)getRow
{
indexpathRow = getRow;
}

现在,您可以在viewController类的任何位置使用它。