iphone - 如何以编程方式对作为 Storyboard原型(prototype)创建的 UITableViewCell 进行初始设置?

标签 iphone ios objective-c uitableview

我在 Storyboard中创建了一堆不同的单元作为原型(prototype),但我有一些更改适用于该类型的所有单元,所以我只想执行一次。但我认为我无法在 Storyboard 中应用这些更改,因此我必须以编程方式进行这些更改。

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

每次单元回收时都必须重做此操作似乎很浪费,但似乎没有一个好的方法来检查单元是新的还是回收的,因为单元永远不会为零。

我想你可以添加一个手动标志来指示单元格是否是新的,但这看起来像是一个黑客。还有其他选择吗?

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

最佳答案

您可以在awakeFromNib中执行单元的一次性设置。但是,我想您正在谈论替换用于进入 TableView 数据源中的 if (cell == nil) block 的代码。

我首先尝试将此代码移动到您的单元格中。它真的属于 TableView Controller ,还是在单元格本身内部更合适?

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

关于iphone - 如何以编程方式对作为 Storyboard原型(prototype)创建的 UITableViewCell 进行初始设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042790/

相关文章:

ios - (Siri) 创建自己的 resolve 方法

ios - 如何增加图例中列之间的距离 Core plot pie Chart

ios - 如何比较图像与按钮图像

iphone - 适用于 iPhone 的 MIDI 播放器/合成器库

iphone - UIImageView _isResizable : Unrecognized Selector

ios - 确认密码的正则表达式

objective-c - 更快的 if 语句 : if `variable` is "value" or "value"

iphone - 在 MKMapView 上添加 UIView

ios - 在不打开默认邮件应用程序的情况下发送电子邮件

ios - 找不到 -lCloudinary 的库