使用Interface Builder for UITableViews

时间:2008-09-25 17:06:03

标签: iphone cocoa-touch uitableview interface-builder

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

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

4 个答案:

答案 0 :(得分:17)

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

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

答案 1 :(得分:6)

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

  1. 尝试使用您在IB
  2. 中设置的标识符将单元格出列
  3. 如果成功,你就完成了。只需使用单元格
  4. 否则您需要创建一个新单元格。使用[NSBundle mainBundle] loadNibNamed:owner:options:方法和适当的xib文件。这将用一个新细胞填充cellFactory ivar。这是棘手的部分。
  5. 设置cell = cellFactory然后释放cellFactory并将其设置为nil,以确保您不会再意外使用它。您现在可以正常使用您的手机

答案 2 :(得分:1)

不幸的是,它并没有真正起作用 - tableview中的单元格是由委托人在运行时生成的。但事实证明这是非常简单的代码。查看tableview示例代码,这很容易理解。

答案 3 :(得分:1)

这是使用UI builder for UITableView's

的好教程