9

我在 iPhone 开发学习过程中处于早期阶段。我正试图了解各种作品。现在,我刚刚采用了基本的 NavigationController 模板,并且正在尝试创建一个带有几个文本字段的简单分组表视图。我似乎无法做的是让 Interface Builder 允许我将 UITableViewCell 放入 UITableView 中,以便我可以向 Cell 添加一个文本字段。这甚至可能吗(似乎它应该被赋予 UITableViewCell 是一个可拖动控件的事实)?

如果不是,这是否意味着所有这些都是我需要自己编写的代码?

4

4 回答 4

17

您可以使用 Interface Builder 创建单元格,但您必须使其成为顶级对象,而不是表视图的子项。然后您可以在视图控制器的tableView:cellForRowAtIndexPath:函数中返回此单元格。

确保在 Interface Builder 中为单元格提供一个标识符,然后使用与dequeueReusableCellWithIdentifier 相同的标识符:(请参阅示例代码以了解其工作原理 - 想法是单元格被重复使用 - 操作系统只会分配尽可能多的单元格立即适合屏幕。节省内存的巧妙方法。)

于 2008-09-25T17:20:03.820 回答
6

小心 Boot To The Head 的方法。如果您没有妥善处理您的IBOutlets. 我将在不发布代码 (NDA) 的情况下尽我所能解释这一点。如果您打算使用 IB 创建您的单元格,请制作UITableViewCell它自己的 Xib 文件。将文件的所有者设置为您的UIViewController子类(或UITableController)。调用类似的IBOutlet东西UITableViewCell *cellFactory。在UITableViewDataSource方法tableView:cellForRowAtIndexPath:中执行以下伪代码;

  1. 尝试使用您在 IB 中设置的标识符使单元格出列
  2. 如果成功,你就完成了。只需使用单元格
  3. 否则,您需要创建一个新单元格。使用该[NSBundle mainBundle] loadNibNamed:owner:options:方法与您正确的 xib 文件在那里。这将用一个新的单元格填充 cellFactory ivar。棘手的部分来了。
  4. 设置cell = cellFactory然后释放cellFactory并将其设置为 nil 以确保您不会意外再次使用它。您现在可以正常使用手机了
于 2008-09-25T21:45:22.263 回答
1

不幸的是,它并没有真正以这种方式工作 - 表格视图中的单元格是由委托在运行时生成的。不过,事实证明这是非常简单的代码。查看 tableview 示例代码,很容易理解。

于 2008-09-25T17:15:19.510 回答
1

这是一个很好的关于使用UITableView 的 UI builder 的教程

于 2009-03-02T14:16:46.670 回答