解决Tap手势和UITableView点击冲突

简介: 通常是在UIGestureRecognizer的代理函数中进行操作- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch两种思路:根据touch的view的类型进行判断//example-(BOOL)gest

通常是在UIGestureRecognizer的代理函数中进行操作

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

两种思路:

  1. 根据touch的view的类型进行判断
//example
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
    //如果点击视图为uitableview 则忽略手势
  //  NSLog(@"view class:%@",[touch.view class]);
    if([touch.view isKindOfClass:[UITableView class]]){
        return NO;
    }
    return YES;
}
  1. 根据touch点击point是否在目标view的frame中
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
    //注意:_touchView应该是_referenceView的子视图
    CGPoint p = [touch locationInView:_referenceView];
    //NSLog(@"frame:%@",NSStringFromCGPoint(p));
    if(CGRectContainsPoint (_touchView.frame, p)){
        return NO;
    }
    return YES; }

两种思路,一般来说第二种适用性更广,尤其面对比较复杂的视图构成的情况。

相关文章
|
开发工具 git Windows
VSCode下载与安装使用教程【超详细讲解】
VSCode下载与安装使用教程【超详细讲解】
4946 0
VSCode下载与安装使用教程【超详细讲解】
|
JSON 缓存 JavaScript
【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))
【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))
572 2
|
文字识别 安全 API
iOS Crash 治理:淘宝VisionKitCore 问题修复(下)
iOS Crash 治理:淘宝VisionKitCore 问题修复(下)
469 0
|
Windows
蓝易云 - 使用openssl进行证书格式转换
请注意,上述命令中的"certificate.pem"、"certificate.der"、"certificate.crt"、"certificate.pfx"和"privateKey.key"需要替换为你的实际文件名。
377 4
|
存储 程序员 uml
【程序员必备】绘制架构图,流程图神器推荐
好的图形可以帮我们更好的表达自己,帮我们理清逻辑
|
存储 Prometheus 监控
Linux技术工具:bpftrace介绍
Linux技术工具:bpftrace介绍
621 7
|
设计模式 Java
深入理解设计模式!六大设计原则的分析与介绍
本篇文章开始介绍程序架构设计中的设计模式,介绍了设计模式的基本概念以及23设计模式。主要介绍了设计模式中的六大设计原则。开闭原则,里氏代换原则,依赖倒转原则,接口隔离原则,迪米特原则和合成复用原则。这几大原则是设计模式使用的基础,在使用设计模式时,应该牢记这六大原则。
7359 0
深入理解设计模式!六大设计原则的分析与介绍
|
网络协议 测试技术 Windows
Switchhosts工具的使用
Switchhosts工具的使用
832 0
航班管理系统(最全最细)
航班管理系统(最全最细)
|
域名解析 缓存 网络协议
阿里云DNS常见问题之阿里云DNS的操作日志查不到如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集: