【问题标题】:Add a TapGestureRecognizer to whole view except UICollectionView cells将 TapGestureRecognizer 添加到除 UICollectionView 单元格之外的整个视图
【发布时间】: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 以保留其默认单元格“点击以继续”功能?

【问题讨论】:

标签: ios objective-c uiview uigesturerecognizer uicollectionview


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
相关资源
最近更新 更多