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

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

有帮助吗?

解决方案

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

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

其他提示

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

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

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

这是一个很好的教程,使用 UITableView的UI构建器

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top