iOS tableView点击与手势冲突的解决方法
在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
网友评论