2011-07-13 84 views
2

我试图设置UITableView显示嵌套的线程项目。我正在使用核心数据和NSFetchedResultsController,但我不确定我的方法应该是什么。我要显示这样的信息:实现UITableView树结构

  • 项目#1
    • 项目#1.1
    • 项目#1.2
    • 显示所有
  • 项目#2
    • 项目#2.1
    • 商品编号2.2
    • 显示所有

在上文中,每个子区有一个“显示全部”按钮被点击时将与附加的子项来代替(上述每个子弹是一个单一的表视图小区)。任何人做了类似的事情,并有任何方法提示?谢谢。

+0

您是否有更深层次的项目#1.1.1? –

+0

@Salcedo目前没有计划支持多层嵌套。 –

+0

节点是否例如“项目#1”和叶子例如'item#1.1'都是同一个实体还是它们是两个不同的实体? – TechZen

回答

4

我不打扰尝试将NSFetchedResultsController塞进它未创建的模式。 FRC对嵌套表没有固有的支持,我认为要做一个嵌套表需要更多的工作,而不是写一个自定义的tableview控制器来处理这个问题。如果您的表格将显示来自两个或更多个实体的对象,那么这是非常正确的。

此外,我会警告不要在手持移动设备上使用嵌套表格。 iPhone屏幕将只显示约11个标准尺寸的行。因此,根据上面的示例,任何时候您都只能看到两个或三个节点标题。更糟糕的是,如果你有一个叶节点超过11个的节点,你将只会看到叶子的屏幕,并且tableview的层次特性将被伪装。

在大多数情况下,一个层次结构的tableview,每个层次都显示在一个单独的层面上,几乎总是最好的设计。

+0

是的,对于OP,我建议尽可能简单。 –

1

您可以使用节标题拆分您的列表,标题是项目名称。所有项目都可用,您可以一次全部滚动浏览。由于您只需要一个缩进级别,所以这可能适合您。

我已经在一个名为GoTasks(从应用商店免费下载)的应用程序中看到相当有效的子项目使用,它将子任务显示为多个缩进(尽管没有崩溃),我认为它非常有效,即使没有我iPhone上的屏幕空间。不幸的是,我的iPhone开发经验不足以告诉你这是如何完成的。