2

我正在尝试使用(出于充分的理由)深度超过两层的数据结构来支持我的 UICollectionView 的数据源。换句话说,我的数据可以分成多个部分,但并非所有这些部分都只包含项目。有些包含项目数组(或“嵌套部分”,可以这么说)。这些项目可以很容易地通过索引路径引用三个索引长(例如 3.2.4),但 UICollectionView 的数据源方法似乎只支持最多两个索引长的索引路径。

所有 UICollectionView API 都使用 NSIndexPaths 来引用集合视图项,因此理论上它们应该与任意数量的索引一起使用。collectionView:numberOfItemsInSection:挑战在于当数据源协议仅提供并 numberOfSectionsInCollectionView:指定它需要请求的索引时,让集合视图“知道”为这些更深索引处的项目请求单元格、布局属性等。

有什么方法不需要我(a)子类化 UICollectionView,Apple 明确不鼓励(“实现自定义布局的提示”下的第二点)或(b)扁平化我的数据结构,这将小于理想,并且鉴于 UICollectionView 已经提供的 API,这似乎是不必要的限制?

4

1 回答 1

0

在标准collectionView(或tableView)的方案中,拥有三层索引没有逻辑意义。我见过一些很酷的表格视图,它们具有“扩展”单元格,它们的工作方式与您描述的方式相同。只是表示扩展单元格的对象告诉表格它有多个可用项目。

我无法理解您的 collectionView 应该如何作为最终产品。如果您在某些索引路径中遇到数组,您要表示什么?我不想告知您的设计,但为什么不在该特定索引处显示一个项目,当用户选择它时,展开或显示带有这些后续项目的另一个视图?

于 2013-08-23T18:39:30.037 回答