解决点击UITableViewCell时和自定义添加的手势冲突的问题
2017-04-19 21:36
525 查看
问题重现:
自义定封装了一个View,把View添加到Window上,在View上添加tableView,然后在View上添加轻拍手势,但是问题来了,点击Cell时,总是响应手势方法,不执行tableView:didSelectRowAtIndexPath:方法。
解决办法:
1、给自定义的手势添加代理
2、执行代理方法,判断触摸事件的View的类型,截获所点击的视图,并决定是否手势继续向下响应
- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch { if ([touch.view isKindOfClass:[UIScrollView class]]) { returnYES; } returnNO;}
或者判断点击的点是否在tableView内
自义定封装了一个View,把View添加到Window上,在View上添加tableView,然后在View上添加轻拍手势,但是问题来了,点击Cell时,总是响应手势方法,不执行tableView:didSelectRowAtIndexPath:方法。
解决办法:
1、给自定义的手势添加代理
2、执行代理方法,判断触摸事件的View的类型,截获所点击的视图,并决定是否手势继续向下响应
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) { return NO; } else { return YES; } }[/code]或则
- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch { if ([touch.view isKindOfClass:[UIScrollView class]]) { returnYES; } returnNO;}
或者判断点击的点是否在tableView内
// 判断触摸点的位置,根据位置决定点击手势是否有效 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // 拿到触摸点 CGPoint point = [touch locationInView:self.bottomView]; // 转换坐标系 CGPoint nPoint = [self.bottomView convertPoint:point toView:self.bottomView.tableView]; // 判断转换坐标后的点的位置 return [self.bottomView.tableView pointInside:nPoint withEvent:nil] ? NO : YES; }[/code]
相关文章推荐
- 解决回收键盘与cell点击事件冲突问题(思路添加手势代理)
- 自定义cell,添加uilable,并且给lable添加tap手势,不响应的问题,对应解决方法
- 解决自定义可左右滑动cell时和tableview的滑动手势冲突问题
- UITableView获取cell的row值(解决自定义cell里的button通过点击无法获得cell的indexpath的问题)
- view添加手势与tableView的cell点击冲突问题
- 做项目过程中遇到的问题及解决----UIGesture手势与UI控件点击的事件冲突解决
- iOS解决UIcollectionView添加手势后不响应其cell的问题
- 根据点击头像的手势获取自定义Cell 的属性, UITableViewCell, 头像, iOS
- 手势的代理方法(解决了 手势和点击cell 的冲突)
- UITableViewCell中自定义cell上UILabel添加手势没有响应解决方案
- iOS添加单击手势与tableview点击的冲突问题
- ios tableview cell上面的view添加手势,两个手指同时点击cell上的view的冲突(手势冲突)
- iOS 解决tableView和点击手势冲突问题
- 解决 cell的点击事件和触摸手势的冲突
- UITableViewCell中的UILabel添加手势没有响应的解决方法
- TableView cell的选中事件 与手势点击事件 冲突解决办法
- Unity上路(一):Srollview的Cell点击与滑动事件冲突的问题解决
- 解决UITableView和UITableViewCell手势冲突的问题
- 自定义SwipeRefreshLayout 嵌套listview 并解决item点击事件焦点冲突问题
- UITableView获取cell的row值(解决自定义cell里的button通过点击无法获得cell的indexpath的问题