检查正在滚动哪个UIScrollView?

时间:2018-08-09 10:27:00

标签: ios swift uiscrollview

我是iOS开发的新手,我不知道scrollViewDidScroll方法的工作原理。正如教程中所述,我正在使用该方法在UIViewPager(屏幕快照中的“顶部图像滑块”)和UIPageControl之间进行连接。但是可悲的是,每当我滚动UICollectionViews(屏幕截图中的鞋子)时,都会调用该方法,而不必要地执行pageControl。如果能够区分在UIScrollView方法中滚动哪个视图(UICollectionViewscrollViewDidScroll),那将是很棒的。

enter image description here

这里是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(图片中的上一个)。

1 个答案:

答案 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
    }
}