プログラムで作成されたビューをいつ/どこで作成して初期化するかという質問があったので、ここでの議論がこのトピックにもっと光を当てることを願っています.
このスライド:
「 viewDidLoadのビューのジオメトリに基づいて何かを初期化しないでください」と述べ、 viewDidAppear
.
私のView Controllerにビューがあると想像してください。10 個の動的 UIButton を追加したいと考えています。viewDidAppearに以下のようなコードを入れましょうか?
-(void) viewDidAppear:(BOOL)animated
{
...
UIButton *button1 = [[UIButton alloc] initWithFrame: rect1];
[self.view addSubview: button1];
UIButton *button2 = [[UIButton alloc] initWithFrame: rect2];
[self.view addSubview: button2];
...
}
ただし、これにより、ビューが表示されるたびにボタンが作成されます。それは私たちが望むものですか?一方、コードをviewDidLoad
スライドに入れる場合は、これらのビューのジオメトリをそこで初期化しないことをお勧めします。
それとも でボタンを作成しviewDidLoad
、そのフレームを で設定しviewDidAppear
ますか?
普段はどのようなアプローチをとっていますか?