使用Interface Builder for UITableViews
我在iPhone开发学习过程中很早。我试图让我的脑袋围绕着各个部分。现在,我刚刚采用了基本的NavigationController模板,并试图用几个文本字段创建一个简单的分组表格视图。我似乎无法做到的是让Interface Builder允许我将UITableViewCell拖放到UITableView中,然后我可以向Cell中添加文本字段。这甚至有可能(它似乎应该给它的事实,UITableViewCell是一个可拖动的控件)?使用Interface Builder for UITableViews
如果不是,那么这是否意味着所有这些都是我需要编写自己的代码?
您可以使用Interface Builder创建单元,但必须将其设置为顶级对象,而不是表视图的子级。然后你可以返回这个单元格在你的视图控制器的tableView:cellForRowAtIndexPath:函数中。
确保给小区的标识在Interface Builder,然后使用相同的标识符与dequeueReusableCellWithIdentifier:(见它是如何工作的示例代码 - 这个想法是,细胞得到再利用 - 的操作系统只会一次性分配尽可能多的单元格,以节省内存的巧妙方式。)
不幸的是,它并没有真正这样工作 - tableview中的单元格是由代表在运行时生成的。不过,它变成了非常简单的代码。查看tableview示例代码,这很容易遵循。
小心启动头部的方法。如果您没有正确处理您的IBOutlets
,您将会泄漏。我会尽力解释这一点,尽我所能,无需发布代码(NDA)。如果您打算使用IB创建您的单元格,请使用它自己的Xib文件制作UITableViewCell
。将文件所有者设置为UIViewController
子类(或UITableController
)。请致电,如UITableViewCell *cellFactory
。在UITableViewDataSource
方法tableView:cellForRowAtIndexPath:
中做下面的伪代码;
- 请尝试使用IB
- 标识您在安装成功的话,做一个出列单元格。只需使用单元格
- 否则您需要创建一个新的单元格。在那里使用适当的xib文件的
[NSBundle mainBundle] loadNibNamed:owner:options:
方法。这将填满cellFactory ivar与一个新的细胞。棘手的部分来了。 - 设置
cell = cellFactory
然后释放cellFactory
并将其设置为零以确保您不会意外再次使用它。您现在可以安全使用正常