包含视图块的点击手势 tableView 选择

Posted

技术标签:

【中文标题】包含视图块的点击手势 tableView 选择【英文标题】:tap gesture on containing view blocks tableView selection 【发布时间】:2013-06-03 20:23:56 【问题描述】:
UITapGestureRecognizer *singleFingerTap =
            [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    [self.view addGestureRecognizer:singleFingerTap];


- (void)handleSingleTap:(id)handleSingleTap 
    [self.view endEditing:YES];

我有一个包含表格视图的视图,我想在点击视图时结束对文本字段的编辑。但是,我不希望这会阻止选择包含的元素。具体来说,我有一个表格视图,除非我滑动它们,否则无法选择其单元格。轻按一下就会被手势识别器吞下并且无法通过。

如果我删除手势识别器,表格可以正常工作。

如何处理视图上的点击事件而不阻止子视图接收事件?

【问题讨论】:

【参考方案1】:

将您的类设置为您的UITapGestureRecognizer 的委托并实现该方法 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 然后检查UITouch 位置,如果在tableView 上则返回NO,如果不是返回YES。

对于UITouch 位置使用locationInView:方法

【讨论】:

以上是关于包含视图块的点击手势 tableView 选择的主要内容,如果未能解决你的问题,请参考以下文章

具有切换子视图和选择手势的列表项

长按选择的 Swift 3.0 表格视图单元格

如何禁用滚动视图子视图的点击手势?

带有选取器(分段控件)子视图和选择手势的列表项

在tableview自定义单元格中的图像上长按手势

使用平移手势选择多个表格视图单元格