UITableView添加UITapGestureRecognizer与didSelectRowAtIndexPath冲突解决方法

Posted codemaker313

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITableView添加UITapGestureRecognizer与didSelectRowAtIndexPath冲突解决方法相关的知识,希望对你有一定的参考价值。

在UITableView上添加了UITapGestureRecognizer后会导致didSelectRowAtIndexPath失效,原因是UITapGestureRecognizer会截取了tableView的touch事件,导致无法响应行选择,解决方法是重写UIGestureRecognizerDelegate中的

 

1 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
2 {
3     if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {//如果当前是tableView
4         //做自己想做的事
5         return NO;
6     }
7     return YES;   
8 }

 

以上是关于UITableView添加UITapGestureRecognizer与didSelectRowAtIndexPath冲突解决方法的主要内容,如果未能解决你的问题,请参考以下文章

将 UITapGesture 添加到 UIScrollView

UIPanGesture 正在工作,但 UITapGesture 在 UIView 上不起作用

视图中的 UITapGesture 时不调用 UIButton 操作

用于 UILabel 问题的 UITapGesture 选择器

iOS开发:Runtime解决UITapGesture重复点击问题

无法在 childView 中禁用 UITapGesture