我目前有一个panGesture识别器附加到也支持分页的collectionView。
问题是panGesture覆盖了分页。如果可能的话,我希望在panGesture之前执行分页。
我使用panGesture垂直移动collectionView,并使用分页水平滑动单元格。
答案 0 :(得分:0)
通过检测集合视图的滚动,我们可以在没有PanGesture的情况下实现相同的功能。
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let visibleRect = CGRect(origin: collectionViewCreateNewGame.contentOffset, size: collectionViewCreateNewGame.bounds.size)
let visiblePoint = CGPoint(x: visibleRect.midX, y: visibleRect.midY)
let indexPath = collectionViewCreateNewGame.indexPathForItem(at: visiblePoint)
pageControl.currentPage = (indexPath?.row)!
}
答案 1 :(得分:0)
我最终做的是遍历collectionView的gestureRecognizers:
if let gestureRecognizers = collectionView.gestureRecognizers {
for gestureRecognizer in gestureRecognizers {
print(gestureRecognizer)
}
}
通过打印每个并阅读说明,很明显,分页是由索引1处的gestureRecognizer完成的(UIScrollViewPagingSwipeGestureRecognizer)
然后我用了:
myPanGesture.require(toFail: collectionView.gestureRecognizers![1])
它有效,但我的使用有些滞后。我想这可能对其他情况有帮助,但我发布了我的解决方案。