如何通过 panGestureRecognizer 启用 collectionView 分页

问题描述 投票:0回答:2

我目前有一个 panGesture 识别器附加到也启用了分页的 collectionView。

问题是 panGesture 覆盖了分页。 如果可能的话,我希望在 panGesture 之前执行分页操作。

我使用 panGesture 垂直移动 collectionView,并使用分页水平滑动单元格。

ios swift pagination uicollectionview uipangesturerecognizer
2个回答
0
投票

我们可以通过检测 CollectionView 的滚动来实现相同的功能,无需 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)!
}

0
投票

我最终做的是迭代collectionView的gestureRecognizers:

if let gestureRecognizers = collectionView.gestureRecognizers {
    for gestureRecognizer in gestureRecognizers {
         print(gestureRecognizer)
    }
}

通过打印每一个并阅读描述,很明显分页是由索引 1 处的gestureRecognizer(UIScrollViewPagingSwipeGestureRecognizer)完成的

然后我用了:

myPanGesture.require(toFail: collectionView.gestureRecognizers![1])

它可以工作,但在我的使用中有些滞后。 我想这在其他情况下可能会有所帮助,所以我发布了我的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.