如何知道当用户向上/向下滑动时?

时间:2019-06-28 05:27:47

标签: ios swift uiview uicollectionview uiswipegesturerecognizer

我的UICollectionView中有ViewController(请检查下面的图像以获取视图层次结构)。我们如何检测用户何时向上或向下滑动?

是否向UIViewUICollectionView添加手势识别器都没关系。我只想知道滑动手势。

View Hierarchy

我尝试通过使用堆栈溢出中的代码向UIViewUICollectionView添加手势识别器。但是他们都不满足我的要求。

谢谢。

1 个答案:

答案 0 :(得分:1)

由于collectionView基本上是scrollView,因此请使用scrollViewDidScroll(_:)方法来标识collectionView的滚动方向。

private var lastContentOffset: CGFloat = 0.0

在上面的代码中,lastContentOffset在滚动时跟踪contentOffset的前collectionView

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if (scrollView.contentOffset.y < self.lastContentOffset) {
        //Scrolling up
    }
    else if (scrollView.contentOffset.y > self.lastContentOffset) {
        //Scrolling down
    }
    self.lastContentOffset = scrollView.contentOffset.y
}

请不要忘记遵守UICollectionViewDelegate协议。

此外,无需添加任何单独的gestureRecognizerUICollectionView作为UIScrollView会自行处理。