我在iPhone开发学习过程中很早。我正试图绕过各种各样的东西。现在我刚刚采用了基本的NavigationController模板,我正在尝试使用几个文本字段创建一个简单的分组表视图。我似乎无法做的是让Interface Builder允许我将UITableViewCell放入UITableView,以便我可以向Cell添加一个文本字段。这甚至是可能的(似乎它应该被赋予UITableViewCell是一个可拖动控件的事实)?
如果没有,这是否意味着所有这些都是我需要自己编写的代码?
答案 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:
中执行以下伪代码;
[NSBundle mainBundle] loadNibNamed:owner:options:
方法和适当的xib文件。这将用一个新细胞填充cellFactory ivar。这是棘手的部分。cell = cellFactory
然后释放cellFactory
并将其设置为nil,以确保您不会再意外使用它。您现在可以正常使用您的手机答案 2 :(得分:1)
不幸的是,它并没有真正起作用 - tableview中的单元格是由委托人在运行时生成的。但事实证明这是非常简单的代码。查看tableview示例代码,这很容易理解。
答案 3 :(得分:1)