如何捕捉 UICollectionView 上的手势?

Posted

技术标签:

【中文标题】如何捕捉 UICollectionView 上的手势?【英文标题】:How can I catch the gestures over UICollectionView? 【发布时间】:2015-02-18 08:20:29 【问题描述】:

我有一个UICollectionView 和一个自定义的UICollectionViewCell

我希望能够将UICollectionView 手势捕获为UIGestureRecognizerDelegate,实际上我想通过使用此委托的方法来处理一些手势冲突:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

我怎样才能捕捉到UICollectionViewUIGestureRecognizerDelegate

【问题讨论】:

【参考方案1】:

UICollectionView 确实会监听水龙头,但不会使用UIGestureRecognizer

但是你可以为你感兴趣的类型添加你自己的UIGestureRecognizer(例如UITapGestureRecognizer)到UICollectionView,在它上面设置委托并在gestureRecognizerShouldBegin:中返回YES或NO,这取决于你是否是否希望UICollectionView 做这件事,即返回 NO 将取消您的手势并允许集合视图处理触摸。

如果您只想让手势优先于集合视图触摸处理,请将delayTouchesBegan 设置为“是”。

更多信息在这里Collection View Programming Guide

【讨论】:

以上是关于如何捕捉 UICollectionView 上的手势?的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView - 滚动到下一页

如何检测 UICollectionView 上的触摸?

如何在 UICollectionView 中检测“仅单指”单元格上的双击?

如何捕捉面板上的鼠标滚轮?

如何在 iOS 设备上的滑动手势期间“捕捉”子视图?

iPhone 3GS 上的 iOS 6.0 上的 UICollectionView 崩溃