问题描述
我有一个具有多个UICollectionView的UIViewController,问题是我在任何UICollectionView上滚动时都触发了scrollViewDidEndDecelerating
,
我想要的是仅通过我的UICollectionView之一在scrollViewDidEndDecelerating
上调用函数,
我看到了答案here,他们将ScrollView
与scrollViewDidEndDecelerating
给出的scrollView参数进行了比较,就像在他们的scrollView上添加了一个标签,并检查问题scrollView.tag == myScrollView.tag
我无法在UICollectionView内的scrollView中添加标签。
这是我在scrollViewDidEndDecelerating
上的示例代码,更清楚了
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
print("hello")
}
它也适用于scrollViewWillEndDragging
函数
解决方法
集合视图是滚动视图,集合视图委托是滚动视图委托。因此,只需实现func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
,进入呼叫的scrollView
就是正在滚动的集合视图。
您可以通过标签或插座来标识哪个集合视图,或者可以为集合视图提供其他某种识别功能(我喜欢给我的视图名称)。