我有一个包含 collectionView
和 scrollView
的 VC。我把这段代码通过在 scrollView 中滚动来更改 pageController
的当前页面:
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let pageNumber = round(scrollView.contentOffset.x / scrollView.frame.size.width)
self.pageController.currentPage = Int(pageNumber)
}
它适用于 scrollView
但问题是,当我什至在 collectionView
中滚动时,它会声明并导致 pageController
发生不必要的更改!
我该怎么办?
最佳答案
除了上面发布的答案之外,您还可以使用 View 的标签属性。
只需在 xib 中或通过代码为您的 ScrollView 分配一个标签(Int)。
yourScrollView.tag = 10
然后在 ScrollView 委托(delegate)方法中检查此标记:
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if scrollView.tag == 10 {
///Your scrollview was scrolled
} else {
// Collection view was scrolled
}
}
关于iOS - scrollViewDidEndDecelerating 为 scrollView 和 collectionView 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44455450/