我在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
).打电话给IBOutlet
像UITableViewCell *cellFactory
.在该UITableViewDataSource
方法中tableView:cellForRowAtIndexPath:
执行以下伪代码;
尝试使用您在IB中设置的标识符将单元格出列
如果成功,你就完成了.只需使用细胞
否则,您需要创建一个新单元格.[NSBundle mainBundle] loadNibNamed:owner:options:
在那里使用适当的xib文件的方法.这将用一个新细胞填充cellFactory ivar.这是棘手的部分.
设置cell = cellFactory
然后释放cellFactory
并将其设置为nil以确保您不会意外地再次使用它.您现在可以正常使用您的手机