有一个多级列表,其中一个对象可以连续拥有子对象。
- object1
- 的 Object2的
- 组
- 的 Object4
- 组
- 的 object5
- 的 object6
- 的 object7
- 的 object8
- 的 Object10
- 的 object11
- 的 object12
- 的 object13
我需要在tableview / collectionview上显示对象的元素。
我如何在tableview / collection上显示这个结构使用 ?
提前致谢
答案 0 :(得分:1)
试着回答你的问题,而不是建议替代方案,我会建议如下:
顶级UITableView
,包含两种类型的自定义UITableViewCell
。第一个是标准object
单元格,第二个是group cell
单元格。此组单元格本身内部有UITableView
,Group Label
上方UITableView
。
然后我会对每个UITableView使用标准object
单元格,然后在其中包含UITableView
和UILabel
的单元格执行相同的操作。
对于heightForRowAtIndexPath:
方法,我会检查indexPath
处的单元格是否为对象,如果是,我想这将是标准高度。如果它是一个UITableView
的单元格,我可能会调用我在自定义单元格中创建的方法,例如:
+ (CGFloat)heightForCellWithItems:(NSArray *)items
{
CGFloat totalHeight;
for (id item in items)
{
if ([item isKindOfClass:[ObjectExample class])
{
totalHeight += objectHeight;
}
else if ([item isKindOfClass:[NSArray class])
{
totalHeight += [self heightForCellWithItems:item];
}
}
return totalHeight
}
我会为任何高度由其中的项目数量决定的单元格返回。
对于包含tableView的每个自定义单元格,我都会有一个名为items
的readwrite属性,这些属性将用于填充tableView。再一次(假设你这样做的方式是使用数组中的数组)每次它到达一个数组时,它会将其传递给另一个带有tableView的嵌套单元格。
在items
属性的setter中,我将在单元格中的tableView
上重新加载数据。