IOS 不能触发didSelectRowAtIndexPath事件的原因
2015-07-31 17:39
459 查看
IOS 不能触发didSelectRowAtIndexPath事件
今天遇到这个问题,在网上找到了答案,纪录一下
可能原因:
delegate没有设置。
可能tableview被其他控件覆盖。
添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效,两者之间手势发生冲突。
答案:
前两种情况有没有问题,有的话解决掉,没有就跳过。
如果前两种情况都不是,那看看是不是你在什么地方添加了手势,如果添加了可能原因是:
UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。
查阅了相关文档后找到了一种可行的解决方法:重写UIGestureRecognizerDelegate中的- (BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch方法。
重写内容如下:
再次调试,这回didSelectRowAtIndexPath响应了,解决UITapGestureRecognizer手势截获Touch事件的问题!
今天遇到这个问题,在网上找到了答案,纪录一下
可能原因:
delegate没有设置。
可能tableview被其他控件覆盖。
添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效,两者之间手势发生冲突。
答案:
前两种情况有没有问题,有的话解决掉,没有就跳过。
如果前两种情况都不是,那看看是不是你在什么地方添加了手势,如果添加了可能原因是:
UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。
查阅了相关文档后找到了一种可行的解决方法:重写UIGestureRecognizerDelegate中的- (BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch方法。
重写内容如下:
[code]- (void)viewDidLoad {//注册手势的部分代码如下: [super viewDidLoad]; UITapGestureRecognizer *oneTap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyBoard)] autorelease]; oneTap.delegate = self; oneTap.numberOfTouchesRequired = 1; [self.view addGestureRecognizer:oneTap]; }
[code]#pragma mark - UIGestureRecognizerDelegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // 输出点击的view的类名 NSLog(@"%@", NSStringFromClass([touch.view class])); // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件 if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) { return NO; } return YES; }
再次调试,这回didSelectRowAtIndexPath响应了,解决UITapGestureRecognizer手势截获Touch事件的问题!
相关文章推荐
- iOS生产版本发布规范
- iOS开发new与alloc/init的区别
- iOS获取当前的位置
- iOS开发new与alloc/init的区别
- ios开发学习1:开发的方法(转)
- iOS 锁屏强制切换屏幕的方向
- iOS 多线程NSThread
- iOS- 利用AFNetworking(AFN) - 实现图片上传 -
- 高德地图开发文档 iOS
- 27个提升效率的iOS开源库推荐
- iOS学习----------正则表达式
- iOS之访问权限
- iOS学习之内存管理
- iOS学习之解析XML数据
- 可变cell,自适应cell,理解iOS 8中的Self Sizing Cells和Dynamic Type
- iOS学习之多线程
- iOS开发——Xcode基本操作
- 斯坦福大学iOS8公开课笔记01-IOS8结构和MVC模式
- 关于iOS多线程,你看我就够了(已更新)
- iOS学习之KVO、KVC