美文网首页iOS 技术分享
iOS - 点击事件与手势冲突

iOS - 点击事件与手势冲突

作者: Joh蜗牛 | 来源:发表于2018-04-11 15:06 被阅读116次

当didSelectRowAtIndexPath与UIGestureRecognizer冲突时,didSelectRowAtIndexPath一般会出现点击无效果,长按才触发事件的情况。

调试后我发现委托方法

  • (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath)indexPath不执行了。

目测原因是UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。

查阅了相关文档后找到了一种可行的解决方法:重写UIGestureRecognizerDelegate中的

  • (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch方法。

#pragma mark - UIGestureRecognizerDelegate 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

{ 

    // 输出点击的view的类名 

    NSLog(@"%@", NSStringFromClass([touch.view class])); 



    // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件 

    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) { 

        return NO; 

    } 

    return  YES; 

} 

相关文章

  • iOS - 点击事件与手势冲突

    当didSelectRowAtIndexPath与UIGestureRecognizer冲突时,didSelect...

  • iOS 点击事件与手势冲突

    最近做的一个需求,view上面有一个按钮,按钮添加了一个事件,view上添加了一个手势,当点击按钮时会和手势冲突,...

  • iOS点击事件和手势冲突

    场景: 1.父视图添加了左划手势,触发返回方法 2.子视图添加了UIButton 出现的结果bug: 每次点击确认...

  • iOS点击事件和手势冲突

    0、缘起 之所以要写这篇文章,是因为发现在实际编程处理点击事件的过程中,知道响应链和探测链根本没有一点用处。 即使...

  • 无标题文章

    iOS手势与tableView点击事件冲突 问题描述: 当我们把一个tableView添加到一个View上,而该V...

  • iOS解决手势点击和按钮点击事件冲突?

    在开发中有可以会遇见这样的问题,添加手势的同时,会和点击事件冲突。这是由于手势是大哥,点击事件是小弟,可以理解为手...

  • 点击事件和手势冲突

    1、问题场景: 父视图上添加了一个UITabelView和一个UIButton。在parentView上添加了UI...

  • 007-手势事件

    手势事件 ios 手势事件主要有 Tap事件 Tap 事件就是简单的点击事件。 首先放上一个 UIView 用于点...

  • iOS 事件以及手势的处理

    iOS 事件以及手势的处理 首先引用深入浅出iOS事件机制,iOS触摸事件处理详解,详解iOS触摸事件与手势识别三...

  • tableview与tap手势点击事件冲突

    手势设置代理,实现shouldReceiveTouch代理方法,对事件接受对象进行处理

网友评论

    本文标题:iOS - 点击事件与手势冲突

    本文链接:https://www.haomeiwen.com/subject/qexzhftx.html