解决点击UITableViewCell时和自定义添加的手势冲突的问题
来源:互联网 发布:双代号网络计划 编辑:程序博客网 时间:2024/04/29 14:58
问题重现:
自义定封装了一个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; }}
或则
- (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; }
0 0
- 解决点击UITableViewCell时和自定义添加的手势冲突的问题
- 解决 UITableViewCell的点击事件和手势的冲突问题
- iOS开发解决UITableViewCell和添加侧滑手势冲突的问题
- 解决UITableView和UITableViewCell手势冲突的问题
- view添加手势与tableView的cell点击冲突问题
- iOS添加单击手势与tableview点击的冲突问题
- 解决自定义可左右滑动cell时和tableview的滑动手势冲突问题
- 解决 cell的点击事件和触摸手势的冲突
- 解决触控点击事件和手势的冲突
- 解决触控点击事件和手势的冲突
- 解决触控点击事件和手势的冲突
- 手势的代理方法(解决了 手势和点击cell 的冲突)
- UITableViewCell和手势冲突
- iOS 解决tableView和点击手势冲突问题
- iOS端如何解决自定义滑动退出手势与TableViewCell删除手势之间的冲突问题
- 开发笔记:解决安卓GestureOverlayView手势和ListView点击事件、文本框获取焦点冲突的问题
- 解决自定义ListView中滑动事件和点击的setOnItemClickListener事件冲突的问题
- 解决手势与按钮的点击的冲突
- C语言中printf(),scanf()函数的转换说明表(%百分号加字母),修饰符表和标记表
- AMESim找图形平衡点的方法
- binder通信机制概述
- Windows下简单的C语言服务器(UDP)
- MII接口及应用
- 解决点击UITableViewCell时和自定义添加的手势冲突的问题
- docker数据持久化与容器迁移
- 欢迎使用CSDN-markdown编辑器
- FR JavaScript 调用存储执行并输出影响行数
- leetcode [Implement Stack using Queues]//待整理多种解法
- Mac初使用技巧
- 使用 YOLO 做些好玩的事情
- centos6.8安装mysqld后无法启动
- leetcode:413. Arithmetic Slices