我是iOS开发的新手,我不知道scrollViewDidScroll
方法的工作原理。正如教程中所述,我正在使用该方法在UIViewPager
(屏幕快照中的“顶部图像滑块”)和UIPageControl
之间进行连接。但是可悲的是,每当我滚动UICollectionViews
(屏幕截图中的鞋子)时,都会调用该方法,而不必要地执行pageControl。如果能够区分在UIScrollView
方法中滚动哪个视图(UICollectionView
或scrollViewDidScroll
),那将是很棒的。
这里是scrollViewDidScroll
方法,
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let total = scrollView.contentSize.width - scrollView.bounds.width
let offset = scrollView.contentOffset.x
let percent = Double(offset / total)
let progress = percent * Double(self.sliderImages.count - 1)
pageControl.progress = progress
}
奇怪的是是,即使我滚动了UICollectionViews(图片中的鞋子),参数scrollView
始终是ScrollView(图片中的上一个)。
答案 0 :(得分:0)
您可以检查正在滚动哪个scrollView
:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView === yourCollectionView {
//Do something
}
//or you can use this
if scrollView.isKind(of: UICollectionView.self) {
//Do something
}
}