将UICollectionView与嵌套部分一起使用(堆叠标题)

时间:2018-11-28 05:49:53

标签: ios swift uikit

我正在使用Swift 4将Web应用程序移植到iOS,我需要显示一个列表,其中包含多个嵌套的“节”,每个节都有自己的标题。

我的本​​能是使用UICollectionFlowLayout,但是很快发现它仅限于深度1。进一步深入研究,弄清楚我只需要创建一个自定义布局,就会发现IOCollectionViewDataSource协议实际上假设深度为一个。

我怀疑我可以找到一种方法来展平数据并重现嵌套节的错觉,但我困惑于找不到一种UICollectionView构建似乎很普通的明显方法接口元素。也许我想念什么?

在UIKit中是否有实现此目的的常用方法?

Example of stacking headers from nested section list.

1 个答案:

答案 0 :(得分:1)

如果您希望UI像您在问题中的共享方式一样,为什么不将嵌套的UICollectionView与自定义布局一起使用?

想法是

UICollectionView (top)-> DataSource = [Headers: [dataSourceBelowTop]]
     UICollectionView (inner) -> DataSource = dataSourceBelowTop

以上述情况为例:

DataSourceTop is = ["Mission Gorge": ["Middle Earth": [SomeCustomModel]]]

第一个任务是构建顶层UICollectionView,然后每个collectionView将具有另一个集合视图。现在进行滚动,您将需要使用flowLayout进行操作,这可以在另一个线程中进行解释。