嵌套集合视图Swift 4.2

时间:2019-01-23 02:44:22

标签: ios swift uicollectionview

我有一个视图控制器,该控制器具有一个水平集合视图,该视图具有三个单元格。在每个单元格内部,我都有一个垂直的收集视图,该视图具有2个部分。第一部分具有一个像元,第二部分是动态。它可以具有任意数量的像元。在具有一个单元格的垂直收集视图的第一部分中,它具有一个可以具有任意数量的单元格的水平收集视图。

问题:当垂直收集视图的第一部分内部的最里面的收集视图正在滚动时,当到达收集视图的末尾时,我想禁用滚动,以便我的具有三个单元格的最外面的收集视图可以滚动,并且之后,我想启用最里面的收藏夹视图的滚动。这样它可以再次滚动。就像滚动视图或集合视图

Nested Collection View

1 个答案:

答案 0 :(得分:0)

enter image description here

这是一个类似的示例,它在另一个收集视图单元格中具有收集视图

GitHub sample

在这里,我试图在内部集合视图中获取最后一个显示单元格的事件并禁用滚动。

override func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
        //Checking if its not the inner collection view
        if(collectionView.restorationIdentifier != "Collection")
        {
            //scrolled till datasource.count -1 == 14 in our case
            if( indexPath.row == 14){

                //Disabling the scrolling
                collectionView.isScrollEnabled = false;

                //Saved the collection view , so that the scrolling can be enabled later.
                scrolldisabledCollectionView = collectionView;
            }
        }

    }

当滚动外部集合视图时,将启用内部集合视图。

 override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
    {
        if(collectionView?.restorationIdentifier == "Collection")
        {
            scrolldisabledCollectionView?.isScrollEnabled = true
        }
    }