ios – UITableViewCell点击子视图而不选择单元格

我有一个带有UI
ImageView imgView的自定义tableviewCell.我将UITapGestureRecognizer添加到imgView中,这样每当我点击它时我都可以更改imgView的图像.但是,当我点击imgView时,也会触发didSelectRowAtIndexPath.我想要的是:

>在外部点击imgView:触发didSelectRowAtIndexPath
>当点击imgView:Block didSelectRowAtIndexPath时,只需调用手势回调即可更改imgView的图像.

当我点击imgView内部时已经调用了回调函数,但在这种情况下我无法阻止didSelectRowAtIndexPath.我一直在寻找几个小时,但还没有找到解决方案.我正在使用objective-c.任何人都对我的问题有任何想法?谢谢大家!

更新

最后我发现了我的错误.

UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onFavouriteIconTapped:)];


tapGesture.cancelsTouchesInView = NO; // this should be YES by default

[_ivImageView addGestureRecognizer:tapGesture];

只需设置cancelsTouchInView = YES修复我的问题.如果值为YES,则ivImageView将使用触摸事件,并且不会选择单元格.希望这可以帮助那些遇到同样问题的人.

最佳答案 @SHN,你是对的.可能是@meaholik,你错过了那条线.

imageView.userInteractionEnabled = TRUE;

你也可以检查一下
link.

希望它会对你有所帮助. 🙂

点赞