如何在panGestureRecognizer

时间:2018-02-19 08:32:43

标签: ios swift uicollectionview paging uipangesturerecognizer

我目前有一个panGesture识别器附加到也支持分页的collectionView。

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

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

2 个答案:

答案 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])

它有效,但我的使用有些滞后。我想这可能对其他情况有帮助,但我发布了我的解决方案。