首页 > 解决方案 > 自定义集合视图并在集合视图的单元格之间创建空间

问题描述

我正在尝试创建这种关系,下面的图片描绘了 Parent -> Children -> Children -> etc. 。. 我正在尝试为父集合视图使用垂直集合视图,然后为子集合视图使用嵌套的水平集合视图。但是当单击“查看子项按钮”时,我正在努力将集合视图单元格向下移动。我想当点击按钮时我可以做这样的事情:

@IBAction func showChildrenBtnClicked(_ sender: Any) {

    collectionView.contentInset.bottom = 200
    collectionView.reloadData()

}

但这似乎无济于事。有谁知道如何在集合视图中添加空白空间,以便我可以创建一个水平集合视图来保存子元素。

这些是我试图实现的行为的一些模拟图像:

步骤1) 在此处输入图像描述

第2步) 在此处输入图像描述

步骤 3) 在此处输入图像描述

第4步) 在此处输入图像描述

步骤 5) 在此处输入图像描述

先感谢您。

标签: iosswift

解决方案


首先将所有视图作为集合视图。当 ViewchildrenButton 被点击时,将其委托给父集合视图控制器类,然后

if let flowLayout = metaMoreCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
        flowLayout.invalidateLayout()
    }

这将调用

collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize

并在那里给出更新的大小。


推荐阅读