关于tap事件与tableView的点击冲突
2016-11-23 17:52
351 查看
当在一个添加了tap点击取消键盘的view中添加tableView,有可能会造成tableView的点击事件不能响应。
解决办法:参考文章
一个UIScrollView中有若干个UITextfield,为了能在空白处点击能隐藏键盘,加了UITapGestureRecognizer事件,结果导致同样在UIScrollView里的UITableView接收不到didSelectRowAtIndexPath调用消息。
问题原因应该是UITapGestureRecognizer吞掉了touch事件,导致didSelectRowAtIndexPath方法无法响应。
这篇文章里面说的将cancelsTouchesInView设置为NO没多大作用,最后是此文的方法解决了。
解决方法:重写UIGestureRecognizerDelegate中的
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch方法。
#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;
}
解决办法:参考文章
一个UIScrollView中有若干个UITextfield,为了能在空白处点击能隐藏键盘,加了UITapGestureRecognizer事件,结果导致同样在UIScrollView里的UITableView接收不到didSelectRowAtIndexPath调用消息。
问题原因应该是UITapGestureRecognizer吞掉了touch事件,导致didSelectRowAtIndexPath方法无法响应。
这篇文章里面说的将cancelsTouchesInView设置为NO没多大作用,最后是此文的方法解决了。
解决方法:重写UIGestureRecognizerDelegate中的
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch方法。
#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;
}
相关文章推荐
- Tap手势与UITableView点击事件冲突解决办法
- tableView点击事件跟手势冲突解决.
- 背景视图上点击事件与tableView冲突的解决办法
- Ios中手势点击事件和tableView点击事件冲突
- 解决手势与tableview点击事件冲突:
- Swift3.0 tableView/CollectionView点击事件与手势的冲突
- TableView cell的选中事件 与手势点击事件 冲突解决办法
- 关于在tableview的footerView上添加button的点击不响应事件
- 关于iOS延时操作,阶段性总结(部分关于点击,双击事件冲突)
- 获取tableview上button的点击事件
- 点击tableView时触发事件,比如隐藏键盘
- Android ViewPager与子控件点击事件冲突的解决方案
- 关于ListView触摸事件和点击Item事件冲突解决方法
- Cocos2d-x中CCTableView关于点击空白区域依然会响应单元格事件
- iOS界面不能点击(tableView 的cell 不能使用点击事件,tableView也不能上下滚动)
- textview文本片段点击事件与textview点击事件冲突执行两次(最终解决办法)
- UITapGestureRecognizer和UITableView点击事件冲突问题
- 【Android 事件处理】关于Android ViewPager中嵌套ScrollView的手势冲突
- UITouch和TableView如何响应点击事件
- iOS UITapGestureRecognizer手势和UIButton 以及UITabelView点击事件冲突