viewDidLoad
でメソッドを使用できますUITableviewCell
か?
10 に答える
いいえ、UITableViewCell(UIViewControllerの一部)をサブクラス化するカスタムセルクラスにviewDidLoadを記述しないでください。
-(void)layoutSubviews
{
[super layoutSubviews];
}
カスタム セルのコントロールのフレームとすべてを定義できる場所。Apple の UITableviewCell リファレンスを参照してください。
ただし、「viewDidLoad」はオブジェクトの存続期間中に一度だけ呼び出されることに注意してください。これは、一般的な OO プログラミングの初期化子に似ています。ただし、「layoutSubviews」は各セルで何度も呼び出されます (スクロールなどの問題によって異なります)。この理由から、viewDidLoad で「通常行う」ことの多くが、layoutSubviews ではできないことを認識することが重要です。
viewDidLoad は1 回だけ呼び出されることに注意してください。layoutSubviews は頻繁に呼び出されます。
書いてしまえばただの関数になります。
UITableViewCell の一部の IBOutlets を初期化しようとしている場合は、awakeFromNib() 呼び出しを使用することをお勧めします。
override func awakeFromNib() {
super.awakeFromNib()
// Do your stuff
// myIBOutlet.text = "Hello"
}
電話super.layoutSubviews()
もしたほうがいいです。スウィフトの構文:
override func layoutSubviews() {
super.layoutSubviews()
}
UIKit 関数viewDidLoad
は UIViewController のメンバーであり、UITableViewCell はそれを継承しません。必要に応じて名前付き のメソッドを作成できますがviewDidLoad
、UIViewController サブクラスのように呼び出されることはありません。
はい、書き込むことはできますが、viewDidLoad
デリゲートメソッドではないため、自動的に呼び出されない ため、コードを実行するには手動で呼び出す必要があります。UITableViewCell
viewDidLoad
UITableViewCell
[self viewDidLoad]