手势识别器在其他 UICollectionViewCell 内的 UICollectionView 上不起作用
Posted
技术标签:
【中文标题】手势识别器在其他 UICollectionViewCell 内的 UICollectionView 上不起作用【英文标题】:Gesture recognizer doens't work on UICollectionViewCell inside of other UICollectionViewCell 【发布时间】:2015-04-18 05:02:51 【问题描述】:我创建了UICollectionView
作为主要用户界面,每个collectionViewCell
占据了整个屏幕,并通过分页水平滚动。
事情进展顺利,直到我必须在父 CollectionViewCell
内部实现另一个 UICollectionView
。
所以.. 滚动手势可以是滚动父collectionView,也可以是滚动master CollectionViewCell
内的小collectionView。
我希望用户在尝试滚动那个小的 collectionView 区域时可以滚动浏览小的 collectionview,其中大部分是小块图像,而其他滚动动作会导致滚动主 CollectionView。
我相信UICollectionView
继承了UIScrollView
,所以我认为在这种情况下我不需要添加手势识别器(平移)。我已经通过两种方式对此进行了测试,
-
touchBegan 没有检测到我是否点击了小的 collectionview 区域。
如果我将 PanGesture 手动添加到小 collectionView 并且小 collectionView 中的滚动不会触发父 collectionView 滚动。
有没有想过从哪里开始?
【问题讨论】:
【参考方案1】:我不确定,但也许你可以实现这个方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
return YES;
并确定在开始滑动时优先考虑谁。并返回 NO 或 YES。
【讨论】:
听起来像是一个计划。我如何知道已经为 UICollectionViewCell 添加的手势识别器以及我应该在哪里实现这个方法? 你应该在包含你的主 UICollectionView 的 View 中实现这个方法。并且 UIGestureRecognizer 有属性视图。使用它并输入gestureRocognizer。像这样的东西。以上是关于手势识别器在其他 UICollectionViewCell 内的 UICollectionView 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionView:将单击手势识别器添加到补充视图
UICollectionView的选择性手势识别,UIView为子视图
具有 UIView 作为子视图的 UICollectionView 的选择性手势识别