我有UICollectionView
,名为parentCollectionView
,它会水平滚动。在每个parentCollectionView的单元格内,是另一个UICollectionView
,称为childCollectionView
,它垂直滚动。此外,parentCollectionView
设置为paging(pagingEnabled = true)。
因此,您可以向左/向右滚动到下一个parentCollectionView
,然后您可以在childCollectionView
中向上/向下滚动。
然而,有关手势冲突的问题。在第一次水平滑动时,将识别childCollectionView滚动手势。它无法水平滑动,也不会在子集合视图中向下滚动。但是在第二次水平滑动时,它会翻页到下一个水平单元格。
如何阻止子集合视图注册第一次水平滑动?当我在childCollectionView上设置isScrollEnabled = false
时,它修复了问题,但我仍想在我的子集合视图中向下滚动。
这是通过gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
完成的吗?我已经尝试将scrollView子类化为this stack overflow question中的最佳答案,但是没有成功。
干杯
答案 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