Abh*_*ngh 80
不,你不在自定义单元类子类UITableViewCell(它是UIViewController的一部分)中编写viewDidLoad.你有一个方法叫做
-(void)layoutSubviews
{
[super layoutSubviews];
}
Run Code Online (Sandbox Code Playgroud)
您可以在哪里定义框架和所有自定义单元格的控件.请参阅Apple的UITableviewCell参考
但请注意,'viewDidLoad' 在对象的生命周期中只被调用一次 ; 它更像是一般OO编程中的初始化器.但是,'layoutSubviews' 将在每个单元格上多次调用(取决于滚动等问题).重要的是要意识到,为了这个共鸣你在viewDidLoad中"通常做"的许多事情,你无法在layoutSubviews中做到.
如果你写它,它只是一个简单的功能.
Ber*_*eux 14
如果您尝试初始化UITableViewCell的一些IBOutlet,您可能想要进行awakeFromNib()调用:
override func awakeFromNib() {
super.awakeFromNib()
// Do your stuff
// myIBOutlet.text = "Hello"
}
Run Code Online (Sandbox Code Playgroud)
sup*_*org 11
最好还是打个电话super.layoutSubviews().Swift语法:
override func layoutSubviews() {
super.layoutSubviews()
}
Run Code Online (Sandbox Code Playgroud)
AnawakeFromNib()类似于 a viewDidLoad(),因此它的运行频率较低,并且必须为初始化命令调用。
AlayoutSubviews()类似于 a viewWillAppear(),因此当您想更改视图表示中的某些内容时应该调用它。例如,当用户更改手机方向并且应用程序需要更新某些视图的特定配置时,例如大小、颜色和位置。
Apple 关于该awakeFromNib()方法的文档:
概括
在从 Interface Builder 存档或 nib 文件加载后,准备接收器以进行服务。
宣言
func awakeFromNib()讨论 nib 加载基础结构向从 nib 存档重新创建的每个对象发送一条awakeFromNib 消息,但前提是存档中的所有对象都已加载并初始化。当一个对象接收到一个awakeFromNib 消息时,它保证 已经建立了它的所有出口和动作连接。
您必须调用awakeFromNib 的超级实现,让父类有机会执行它们需要的任何其他初始化。尽管此方法的默认实现什么都不做,但许多 UIKit 类提供了非空实现。您可以在自己的awakeFromNib 方法中的任何时候调用超级实现。
| 归档时间: |
|
| 查看次数: |
28532 次 |
| 最近记录: |