1

いくつかの UI アウトレットを備えた単純なビュー コントローラーがあります。私は ARC を使用しています。viewDidLoadラベル プロパティの設定、if ステートメントで一部のコンポーネントのサイズを動的に変更するなど、追加の設定を行います。私の質問は、viewDidLoadこのコードを配置するのに最適な場所ですか? メソッドにあるコードの例をいくつか投稿しました。ありがとう。

self.messageTitleLabel.numberOfLines = 1;
self.messageTitleLabel.adjustsFontSizeToFitWidth = YES;
self.messageTitleLabel.minimumFontSize = 15.0f;
[self someMethodToReframeLabelHeight];
4

3 に答える 3

1

Davidがコメントしたように、はい、ここで追加のセットアップを実行するのは完璧です。ただしviewDidLoad、ビューにジオメトリがまだ設定されていないことに注意してください。したがって、コントローラーのビュー内でサブビューの位置を調整する必要がある場合は、viewWillAppearまたはを使用しますviewDidAppear

お役に立てば幸いです。

于 2012-08-28T13:09:32.783 に答える
1

はい、素晴らしい場所です。iOS では、システムがメモリ不足のためにビューをアンロードする可能性があることを思い出してください。そのため、後でこのメッセージが再び表示される可能性があります。したがって、新しく読み込まれたビューを調整するコードがあれば完璧です。

于 2012-08-28T11:47:05.397 に答える
0

はい。David H が述べviewDidLoadたように、メモリ上の理由からは良い場所です。アプリケーションがメモリ警告を受け取った場合、ビューは次に読み込まれたときに再度設定されます。ただし、を使用するもう 1 つの重要な理由viewDidLoadは、上記のコードをinitまたはに配置しようとinitWithWhatever:すると、奇妙な問題が発生することです。その理由は、このinitメソッドでは、ビューがまだ作成されておらず、.nib から目覚めていないためです。そこからアクセスすると、View Controller サイクル全体が中断されます。.nib を使用していない場合は、.nib で基本的なセットアップを行うこともできます-loadViewsuperこれらのメソッドのいずれかをオーバーライドするときはいつでも呼び出すようにしてください。

于 2012-08-28T13:05:04.100 に答える