【问题标题】:Gesture recognizer doens't work on UICollectionViewCell inside of other UICollectionViewCell手势识别器在其他 UICollectionViewCell 内的 UICollectionView 上不起作用
【发布时间】:2015-04-18 05:02:51
【问题描述】:

我创建了UICollectionView 作为主要用户界面,每个collectionViewCell 占据了整个屏幕,并通过分页水平滚动。 事情进展顺利,直到我必须在父 CollectionViewCell 内部实现另一个 UICollectionView

所以.. 滚动手势可以是滚动父collectionView,也可以是滚动master CollectionViewCell 内的小collectionView。

我希望用户在尝试滚动那个小的 collectionView 区域时可以滚动浏览小的 collectionview,其中大部分是小块图像,而其他滚动动作会导致滚动主 CollectionView。

我相信UICollectionView 继承了UIScrollView,所以我认为在这种情况下我不需要添加手势识别器(平移)。我已经通过两种方式对此进行了测试,

  1. touchBegan 没有检测到我是否点击了小的 collectionview 区域。
  2. 如果我将 PanGesture 手动添加到小 collectionView 并且小 collectionView 中的滚动不会触发父 collectionView 滚动。

有没有想过从哪里开始?

【问题讨论】:

    标签: ios objective-c uiscrollview uicollectionview uicollectionviewcell


    【解决方案1】:

    我不确定,但也许你可以实现这个方法:

     - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    {
        return YES;
    }
    

    并确定在开始滑动时优先考虑谁。并返回 NO 或 YES。

    【讨论】:

    • 听起来像是一个计划。我如何知道已经为 UICollectionViewCell 添加的手势识别器以及我应该在哪里实现这个方法?
    • 你应该在包含你的主 UICollectionView 的 View 中实现这个方法。并且 UIGestureRecognizer 有属性视图。使用它并输入gestureRocognizer。像这样的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2013-09-03
    • 2014-06-13
    • 2020-05-30
    相关资源
    最近更新 更多