我的UICollectionView
中有ViewController
(请检查下面的图像以获取视图层次结构)。我们如何检测用户何时向上或向下滑动?
是否向UIView
或UICollectionView
添加手势识别器都没关系。我只想知道滑动手势。
我尝试通过使用堆栈溢出中的代码向UIView
和UICollectionView
添加手势识别器。但是他们都不满足我的要求。
谢谢。
答案 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
协议。
此外,无需添加任何单独的gestureRecognizer
。 UICollectionView
作为UIScrollView
会自行处理。