嵌套的UICollectionViews滚动问题(iOS)

时间:2017-02-28 19:38:14

标签: ios

我有UICollectionView,名为parentCollectionView,它会水平滚动。在每个parentCollectionView的单元格内,是另一个UICollectionView,称为childCollectionView,它垂直滚动。此外,parentCollectionView设置为paging(pagingEnabled = true)。

因此,您可以向左/向右滚动到下一个parentCollectionView,然后您可以在childCollectionView中向上/向下滚动。

然而,有关手势冲突的问题。在第一次水平滑动时,将识别childCollectionView滚动手势。它无法水平滑动,也不会在子集合视图中向下滚动。但是在第二次水平滑动时,它会翻页到下一个水平单元格。

如何阻止子集合视图注册第一次水平滑动?当我在childCollectionView上设置isScrollEnabled = false时,它修复了问题,但我仍想在我的子集合视图中向下滚动。

这是通过gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:完成的吗?我已经尝试将scrollView子类化为this stack overflow question中的最佳答案,但是没有成功。

干杯

1 个答案:

答案 0 :(得分:0)

问题在于,childCollectionView的内容大小大于框架。因此,childCollectionView给人的印象是它在childCV中向右滚动。我确保内容大小与CV框架相同。

//In my case, the childCV's width is exactly UIScreen.main.bounds.width - 30 
let scrollSize = CGSize(width: UIScreen.main.bounds.width - 30, height: self.listCollectionView.contentSize.height)

listCollectionView.contentSize = scrollSize