iOS 关于单击手势与cell点击冲突的解决方案

问题展示:

view上添加tableView,给view添加单击手势,点击cell却走的是手势方法.(如何让点击cell时手势方法不响应呢?)

解决方案:

OC代码:

 UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClick)];
   tap.delegate=self;   
   [self.view addGestureRecognizer:tap];

   #pragma mark-手势代理,解决和tableview点击发生的冲突
   -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
      if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {//判断如果点击的是tableView的cell,就把手势给关闭了
         return NO;//关闭手势
      }//否则手势存在
      return YES;
    }

swift代码:

        let tap = UITapGestureRecognizer(target: self, action: #selector(removeView))
        self.addGestureRecognizer(tap)
        tap.delegate = self

    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        
        if String(describing: touch.view?.classForCoder) == "UITableViewCellContentView" {
           return false
        } 
       else {
           return true
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容