调试时我注意到在viewDidLoad
调用时,我的视图框架为origin=(x=0, y=20) size=(width=320, height=460)
,这是不准确的。在viewWillAppear
调用中,它已正确设置:origin=(x=0, y=0) size=(width=320, height=416)
考虑导航栏高度。
我的子视图布局取决于根视图,但我不希望每次出现视图时都设置它们。
我们应该如何处理这两个电话?
答案 0 :(得分:6)
处理视图布局的正确位置是UIViewController viewWillLayoutSubviews
方法。只要视图控制器的视图的大小(例如首次显示和旋转时),就会调用此方法。
如您所见,调用viewDidLoad
时,视图控制器的视图尚未完全调整大小。
如果您需要支持iOS 4.3,则无法使用viewWillLayoutSubviews
,因为它已在5.0中添加。在这种情况下,请在viewWillAppear:
。