我正在使用一个自定义表格,其中每个单元格都包含多个元素,其中一个是最喜欢的“星形”图标。
我想添加一个点击手势,这样当点击星形图标时,它会变为“不喜欢”图标(反之亦然)。
我尝试在cellForRowAtIndexPath中添加一个点按手势:
UITapGestureRecognizer *tapRecognizer;
tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(favTapped)];
[[cell.contentView viewWithTag:1] addGestureRecognizer:tapRecognizer];
但点击图标只会调用didSelectRowAtIndexPath(显然)。
我的选择器“favTapped”将不会被调用。
知道该怎么做吗?
谢谢!
答案 0 :(得分:4)
你需要添加
GestureRecognizer
作为自定义单元格类的属性。
:
' @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];