彼女の料理本の例Ch07-11で、Erica Sadunが(viewDidLayoutSubviewsでviewDidAppearを呼び出す)理由を理解するのが難しいです。おそらく、2つのメソッドは代わりに別のメソッドを呼び出す必要がありますか?UIViewController viewDidLayoutSubviews
参照:https://github.com/erica/iOS-5-Cookbook/tree/master/C07
- (void) viewDidAppear:(BOOL)animated
{
scrollView.frame = self.view.bounds;
scrollView.center = CGRectGetCenter(self.view.bounds);
if (imageView.image)
{
float scalex = scrollView.frame.size.width/imageView.image.size.width;
float scaley = scrollView.frame.size.height/imageView.image.size.height;
scrollView.zoomScale = MIN(scalex, scaley);
scrollView.minimumZoomScale = MIN(scalex, scaley);
}
}
- (void) viewDidLayoutSubviews
{
[self viewDidAppear:NO];
}
任意のアイデアなぜですか?
私はこれが悪いコードを分解していると思います。彼女は初期レイアウトを行うためにviewDidAppearにUIViewControllersシステムコールを使用しています。そして、ビューがサブビューのレイアウトを終えたときに同じメソッドを直接遅延して再利用しています。私は、viewDidAppearは 'adjustView'やviewDidLayoutSubviewsのようなメソッドを呼び出すべきであるという前提で正しいと思います。 – RLB
私はviewDidLayoutSubviewsにすべてのレイアウトを入れることができ、viewDidAppear、viewWillAppear、またはdidRotateFromInterfaceOrientationにする必要はないことを発見しました。 –