2013-09-27 33 views
2

我在故事板中创建了一堆作为原型的不同单元格,但是我有适用于该类型的所有单元格的更改,所以我只想做一次。但我不认为我可以在故事板中应用这些更改,所以我必须以编程方式执行这些更改。如何以编程方式将初始设置创建为作为故事板原型创建的UITableViewCell?

例如修改单元格中图像视图的CALayer,在标签上设置自定义字体等。

似乎每次细胞回收时都需要重做这种浪费,但似乎没有一种好方法来检查细胞是新的还是再循环的,因为细胞永远都是零。

我想你可以添加一个手动标志,指示单元是否是新的,看起来像一个黑客。任何其他选项?

编辑:甚至不知道你是否可以使用手动标志,因为你在哪里初始化它?

+1

jrturton是对的。子类UITableViewCell,并把你的自定义在'awakeFromNib'中 –

回答

3

您可以在awakeFromNib中执行单元的一次性设置。但是,我想你正在谈论的是替换表格视图数据源中if (cell == nil)块的代码。

我会先尝试将此代码移动到您的单元格中。它是否真的属于表格视图控制器,还是在单元格内更适合?

如果这不合适,那么我发现的“最佳”解决方案是在出列后检查单元上的某些属性,如果不存在,执行我的初始设置,这涉及设置属性。它确实感觉像一个黑客。

+0

在单元格中的位置?它的init方法? – shim

+1

不,在awakeFromNib中,正如我在答案的顶部所说的那样。 – jrturton

+0

这工作得很好,谢谢。 – shim

相关问题