iOS----手势冲突

项目中我们经常会用到弹框,如京东客服的订单功能,底部一个半透明view,view上添加一个tableview。点击tableviewcell发送订单消息,点击底部半透明view,回收弹框。


弹框

但是如果给view添加tap事件后,我们会发现cell的点击事件没有相应。这是因为tap点击事件与cell点击事件发生冲突。我们需要给tap添加代理,遵循协议。并且在协议方法中判断,当前点击的是哪个控件,如果是cell就返回no,如果是底部view就返回yes

//遵循协议
@interface MJConversationPopView ()<UIGestureRecognizerDelegate>
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(close)];
//设置代理
     tap.delegate = self;
     [self addGestureRecognizer:tap];
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    // 点击了tableViewCell,view的类名为UITableViewCell,则不接收Touch点击事件
    if ([touch.view isKindOfClass:[UITableViewCell class]]) {
        return NO;
    }
    return YES;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 15,278评论 1 180
  • iOS资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。...
    chy1ee阅读 9,163评论 5 83
  • iOS资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。...
    Sean_Shi阅读 4,605评论 0 45
  • iOS资源大全中文版 转载 :https://github.com/phlls/awesome-ios-cn 另一...
    喜欢就可以阅读 10,827评论 8 132
  • 内容包括:框架、组件、测试、Apple Store、SDK、XCode、网站、书籍等。Swift 语言写成的项目会...
    iOS_Alex阅读 17,649评论 13 261

友情链接更多精彩内容