5

可能重复:
UIViewController 返回无效帧?

在调试时我注意到在viewDidLoad调用时我的视图框架origin=(x=0, y=20) size=(width=320, height=460)是不准确的。在viewWillAppear调用它设置正确:origin=(x=0, y=0) size=(width=320, height=416)考虑到导航栏的高度。我的子视图布局取决于根视图,但我不想在每次视图出现时都设置它们。

我们应该如何处理这两个调用?

4

1 回答 1

6

处理视图布局的正确位置是在UIViewController viewWillLayoutSubviews方法中。每当视图控制器的视图调整大小时(例如首次显示时和旋转时)都会调用此方法。

viewDidLoad如您所见,视图控制器的视图在调用时尚未完全调整大小。

如果你需要支持 iOS 4.3 那么你不能使用viewWillLayoutSubviews它,因为它是在 5.0 中添加的。在这种情况下,请在viewWillAppear:.

于 2012-12-19T17:23:04.617 回答