UIScrollView内部的MultiScrolling UIColectionView

时间:2019-03-28 12:46:30

标签: swift xcode scroll uiscrollview uicollectionview

我有一个Profile View Controller,它的父视图是scrollView。但是里面有collectionView用于食谱。

样本图片: https://i.stack.imgur.com/ziRC7.png

我要管理scrollViewcollectionView之间的滚动。因此,在我的scrollViewDidScroll函数中,我编写了这段代码,但是它不起作用。

class userProfileView: UIViewController ,UICollectionViewDelegate, UICollectionViewDataSource, UIScrollViewDelegate {

@IBOutlet weak var recipesCollectionView: UICollectionView!
@IBOutlet weak var main_scrollview: UIScrollView!

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    if (recipesCollectionView.contentOffset.y <= 0 && main_scrollview.contentOffset.y < (main_scrollview.contentSize.height - main_scrollview.frame.size.height))  {

            main_scrollview.isScrollEnabled = true
            recipesCollectionView.isScrollEnabled = false
    }

    else if (main_scrollview.contentOffset.y >= (main_scrollview.contentSize.height - main_scrollview.frame.size.height)) {

        main_scrollview.isScrollEnabled = false
        recipesCollectionView.isScrollEnabled = true


    }

 }

}

出什么问题了?

谢谢!

1 个答案:

答案 0 :(得分:0)

嵌套的滚动视图可能很难管理。您必须为速度以及滚动从何而来编写逻辑。

您可以使用带单元格的表格视图,该单元格内部具有集合视图。这将解决您在处理滚动逻辑时遇到的问题。

通常,除非您有充分的理由,否则我不会使用自定义滚动视图。 TableViews和CollectionViews对于大多数常见的布局和方案都足够强大。