【问题标题】:Multi Level List on a TableView/CollectionView [closed]TableView/CollectionView 上的多级列表 [关闭]
【发布时间】:2014-07-02 17:20:26
【问题描述】:

有一个多级列表,其中一个对象可以有子对象并且这些子对象是连续的。

  • object1
  • object2
    • 对象4
      • object5
      • object6
      • object7
      • object8
    • Object10
  • object11
  • object12
  • object13

我需要在 tableview/collectionview 上展示对象的元素。

我如何在 tableview/collectionView 上呈现这种结构不使用部分

提前致谢

【问题讨论】:

  • 你有没有想过在 collectionview/tableview 中“嵌套”collectionview/tableview ?喜欢照片库?其中objectx 将是一个文件夹,groupobject 将是一个 ... 对象。
  • 抱歉,我需要展示所有 objectX。您对“嵌套”集合/tableview 是什么意思?

标签: ios uitableview ios7 uicollectionview


【解决方案1】:

尝试从字面上回答您的问题,而不是建议替代方案,我建议如下:

顶级UITableView 具有两种类型的自定义UITableViewCells。第一个是标准的object 单元,第二个是group cell。这个组单元格本身内部有一个UITableView,以及UITableView上方的Group Label

然后我会对每个 UITableView 执行相同的操作,使用标准的 object 单元格,然后是带有 UITableViewUILabel 的单元格。

对于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 的读写属性,这些是用于填充 tableView 的项目。再一次不过(假设您这样做的方式是使用数组中的数组)每次遇到数组时,它都会将其传递给另一个带有 tableView 的嵌套单元格。

items 属性的设置器中,我将在单元格中的tableView 上重新加载数据。

【讨论】:

  • 您能更好地解释一下如何在单元格内填充“新”表格视图吗?
  • 我正在寻找相同的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
相关资源
最近更新 更多