将 TapGestureRecognizer 添加到除 UICollectionView 单元格之外的整个视图

Posted

技术标签:

【中文标题】将 TapGestureRecognizer 添加到除 UICollectionView 单元格之外的整个视图【英文标题】:Add a TapGestureRecognizer to whole view except UICollectionView cells 【发布时间】:2013-10-12 23:30:52 【问题描述】:

我想添加一个 TapGestureRecognizer 来覆盖 UICollectionViewController 的整个屏幕,除了 UICollectionViewCell 单元格。

我得到的最接近的是

-(void) viewDidLoad 
...
UITapGestureRecognizer *tapAnywhere = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(addBoard:)];
[self.collectionView addGestureRecognizer:tapAnywhere];

问题:当我点击一个单元格时,不会调用 prepareForSegue 方法。 UITapGestureRecognizer 似乎覆盖了单元格。

UICollectionViewController 中的哪个视图最适合附加 GestureRecognizer 以保留其默认单元格“点击以继续”功能?

【问题讨论】:

用这个***.com/questions/24701911/… 【参考方案1】:

实现手势识别器委托方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

    if ([touch.view isKindOfClass:[UICollectionViewCell class]]) //It can work for any class you do not want to receive touch
    
        return NO;
    
    else 
    
        return YES; 
    

【讨论】:

这对我不起作用。相反,我检查了 touch.view 是否是类 UICollectionView 并返回 YES

以上是关于将 TapGestureRecognizer 添加到除 UICollectionView 单元格之外的整个视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 c# 将 TapGestureRecognizer 添加到从 JSON 创建的项目中?

使用 xib 将 tapGestureRecognizer 添加到自定义 UIView

当我尝试将 TapGestureRecognizer 添加到我的 UIImageView 时出现此错误:Unrecognized selector sent to class

在 UIView 中将 tapGestureRecognizer 添加到 UIImageView 并通过协议调用方法

TapgestureRecognizer 将触摸检测为滚动视图

带有 TapGestureRecognizer 的最前面的 UIView 没有收到触摸