实现UITableView树结构

时间:2011-07-13 00:46:51

标签: iphone cocoa-touch core-data

我正在尝试设置UITableView来显示嵌套的线程项。我正在使用核心数据和NSFetchedResultsController,但我不确定我的方法应该是什么。我想显示如下信息:

  • 项目#1
    • 项目编号1.1
    • 项目编号1.2
    • 全部显示
  • 项目#2
    • 项目#2.1
    • 项目编号2.2
    • 全部显示

在上面,每个子部分都有一个“全部显示”按钮,点击后将被替换为其他子项(上面的每个子弹都是一个表格视图单元格)。任何人做过类似的事情并有任何方法提示?感谢。

2 个答案:

答案 0 :(得分:4)

我不打算尝试将NSFetchedResultsController塞入一个它没有创建的模式。 FRC对嵌套表没有内在的支持,我认为破解它来做嵌套表要比编写自定义tableview控制器来处理问题要花费更多的工作。如果您的表将显示来自两个或更多实体的对象,则更是如此。

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

在大多数情况下,每个在单个级别上显示的tableviews层次结构几乎总是最佳设计。

答案 1 :(得分:1)

您可以使用章节标题拆分列表,标题是项目名称。所有项目都可用,您可以一次滚动浏览所有项目。因为你只想要一个级别的缩进,这对你来说可能很有用。

我已经看到一个名为GoTasks的应用程序中的子项目的有效使用(从应用程序商店免费下载),它将子任务显示为多个缩进,(虽然没有折叠),我认为它非常有效,甚至没有iPhone上的屏幕空间。不幸的是,我的iPhone开发经验还不足以告诉你这是怎么做的。