我已经做了这段代码,以获得当前页面,同时滚动视图和有一个UICollectionView在屏幕底部。
问题是,当我滚动scroll view时,它工作正常,但是这个方法在滚动UICollectionView时也能工作。

func scrollViewDidScroll(_ scrollView: UIScrollView){
        let pageNo = round(scrollView.contentOffset.x / scrollView.frame.size.width)
        print(pageNo)
        if pageNo == 0.0{
            changebackColor()
            dignosticView.backgroundColor = UIColor().HexToColor(hexString: "FC6614", alpha: 1.0)
            dignosticView.layer.borderColor = UIColor().HexToColor(hexString: "f68f56").cgColor
        }
        else if pageNo == 1.0{
            changebackColor()
            offerView.backgroundColor = UIColor().HexToColor(hexString: "FC6614", alpha: 1.0)
            offerView.layer.borderColor = UIColor().HexToColor(hexString: "f68f56").cgColor
        }
        else if pageNo == 2.0{
            changebackColor()
            alertView.backgroundColor = UIColor().HexToColor(hexString: "FC6614", alpha: 1.0)
            alertView.layer.borderColor = UIColor().HexToColor(hexString: "f68f56").cgColor
        }
    }

最佳答案

是的,因为集合视图也是滚动视图。您可以将if语句放在scroll view委托的第一行,如果scrollView来自您的集合视图,则不执行任何操作

if(scrollView != collectionView){
   //your code here
}

关于swift - ScrollView 集合 View 时也调用Scrollview委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44646297/

10-14 23:07