自定义表格视图单元格中特定元素的手势

时间:2014-05-26 19:22:37

标签: ios objective-c uitableview uitapgesturerecognizer

我正在使用一个自定义表格,其中每个单元格都包含多个元素,其中一个是最喜欢的“星形”图标。

我想添加一个点击手势,这样当点击星形图标时,它会变为“不喜欢”图标(反之亦然)。

我尝试在cellForRowAtIndexPath中添加一个点按手势:

UITapGestureRecognizer *tapRecognizer;
tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(favTapped)];
[[cell.contentView viewWithTag:1] addGestureRecognizer:tapRecognizer];

但点击图标只会调用didSelectRowAtIndexPath(显然)。

我的选择器“favTapped”将不会被调用。

知道该怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

你需要添加 GestureRecognizer作为自定义单元格类的属性。

你的customCell.h中的

' @property (weak, nonatomic ) UIButton *yourButton; // or swipeGesture'
tableView:cellForRowAtIndexPatch:

中的

   [cell.yourButton addTarget:self action:@selector(yourMethod) forControlEvents:yourControlEvent]; // also aviable for gestures

还要验证是否启用了用户交互(在界面构建器中,您也可以在自己的类中覆盖它)。最简单的方法是写入tableView:cellForRowAtIndexPatch: [cell.contentView setUserInteractionEnabled:YES];