我有一个带有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.
希望它会对你有所帮助. 🙂