iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
2015-07-29 13:35
537 查看
问题:使用addGestureRecognizer:oneTap导致 didSelectRowAtIndexPath 方法失效
添加一个UIview,再把table添加到这个view上,给这个view使用addGestureRecognizer手势点击功能,导致table的 didSelectRowAtIndexPath 方法失效。
ViewDidLoad中注册手势的部分代码如下:
[cpp] view plaincopy
[self.view addGestureRecognizer:oneTap];
其中hideKeyBoard方法就省略了,基本就是几个resignFirstResponder。
然后发生了一个奇怪的现象,点击“找回密码”那一栏时没有反应了!!!
调试后我发现委托方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath不执行了。
目测原因是UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。
查阅了相关文档后找到了一种可行的解决方法:重写UIGestureRecognizerDelegate中的
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch方法。
[cpp] view
plaincopy
#pragma mark - UIGestureRecognizerDelegate
BOOL
, NSStringFromClass([touch.view class
ifclass]) {
return
return
}
再次调试,这回didSelectRowAtIndexPath响应了,解决UITapGestureRecognizer手势截获Touch事件的问题!
添加一个UIview,再把table添加到这个view上,给这个view使用addGestureRecognizer手势点击功能,导致table的 didSelectRowAtIndexPath 方法失效。
ViewDidLoad中注册手势的部分代码如下:
[cpp] view plaincopy
[self.view addGestureRecognizer:oneTap];
其中hideKeyBoard方法就省略了,基本就是几个resignFirstResponder。
然后发生了一个奇怪的现象,点击“找回密码”那一栏时没有反应了!!!
调试后我发现委托方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath不执行了。
目测原因是UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。
查阅了相关文档后找到了一种可行的解决方法:重写UIGestureRecognizerDelegate中的
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch方法。
[cpp] view
plaincopy
#pragma mark - UIGestureRecognizerDelegate
BOOL
, NSStringFromClass([touch.view class
ifclass]) {
return
return
}
再次调试,这回didSelectRowAtIndexPath响应了,解决UITapGestureRecognizer手势截获Touch事件的问题!
相关文章推荐
- VisualSVN错误 Cannot query proxy blanket解决办法
- UISegmentControl 和UIslider
- QQuickImageProvider在QML设计中的应用
- 【干货】jsMind思维导图整合Easyui的右键菜单
- iOS UITableView删除cell分割线
- mediawiki和confluence
- UITapGestureRecognizer会屏蔽掉Button的点击事件
- 从ValueType讨论c#的值类型系统
- 玩转Android--UI篇--PreferenceActivity(开启wifi和音乐等)
- UIImage的2种加载方式
- label指定位置文字属性设置
- 深入掌握JMS(四):实战Queue
- JSP 获取Request 常用参数
- IOS入门学习笔记(普通UI控件--UISwitch、UITextField、UITextView、UISegmentedControl)
- 应用Druid监控SQL语句的执行情况
- String、StringBuffer和StringBuilder的区别
- UIAlertView、UIActionSheet兼容iOS8
- 区分Request.Params、Request.QueryString、Request.Form
- UITextFiled上方宽度解决
- OC学习:OC_中基本数据类型和结构体的封装(NSNumber继承与NSValue)