最近做项目时候, 遇到 UIGestureRecognizer 与手势或 tableView(列表) 点击事件冲突了,我在tableView 父View 加了一个UIGestureRecognizer事件, 结果导致,didSelectRowAtIndexPath点击无效, 事件冲突了,解决方法如下:
把UIGestureRecognizer delegate 实现, 在代理方法判断,点击的视图 响应相应的事件就好了
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(removeSelectView)];
tap.delegate = self;
[self addGestureRecognizer:tap];
实现UIGestureRecognizerDelegate中的代理
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
if ([touch.view isKindOfClass:[UITableView class]]) {
return NO;
}
return YES ;
}