美文网首页iOS技术
iOS解决单击手势和UITableView的点击事件冲突

iOS解决单击手势和UITableView的点击事件冲突

作者: Leeson1989 | 来源:发表于2020-04-15 11:42 被阅读0次

    一个页面既有tap手势又有UITableView,那么这个时候tableview的点击就会被点击手势取代,点击cell会没有反应,这时候我们要处理一下手势冲突
    使用手势的代理进行解决,确认一下代理<UIGestureRecognizerDelegate>
    首先我们先添加一个手势:

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(disMissGrantureADD:)];
    
        [tap setNumberOfTapsRequired:1];
    
        tap.delegate=self;//确认一下代理
    
        [self.view addGestureRecognizer:tap];
    
    #pragma mark - UIGestureRecognizerDelegate
    /*
     //解决手势冲突,这个代理方法默认返回NO,会阻断继续向下识别手势,如果返回YES则可以继续向下传播识别。
     1、遵循UIGestureRecognizerDelegate
     2、重写相应代理方法
     3、指定手势代理者
     4、利用代理方法
     */
    -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
        
        if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"])
        {
            //判断如果点击的是tableView的cell,就把手势给关闭了
            return NO;//关闭手势
        }
        return YES;//否则手势存在
       
    }
    
    

    相关文章

      网友评论

        本文标题:iOS解决单击手势和UITableView的点击事件冲突

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