美文网首页
iOS tableView点击与手势冲突的解决方法

iOS tableView点击与手势冲突的解决方法

作者: JohnayXiao | 来源:发表于2019-08-15 17:01 被阅读0次

在tableView上加了一个点击手势, 但didSelectRowAtIndexPath的代理方法就不执行了,只会执行手势事件, 原因是应该是UITapGestureRecognizer吞掉了touch事件,导致didSelectRowAtIndexPath方法无法响应。

解决方法是实现UIGestureRecognizerDelegate的代理方法

创建点击事件并遵循delegate

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

实现代理方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
   
    if ([touch.view isKindOfClass:[UITableView class]]) {
        return YES;
    }
    return  NO;
}

相关文章

网友评论

      本文标题:iOS tableView点击与手势冲突的解决方法

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