iPhone:viewWillAppear之前的viewDidLoad之后调用什么?

这里真的很奇怪的行为。 我有一个视图里面的滚动视图,其中包含我的界面。

在我的viewDidLoad ,我将scrollView的框架设置为0,0的原点。

我在我的viewDidLoad的末尾logging原点,它是0.但是,在我的viewWillAppear的开始,原点是-20。 有谁知道什么样的方法可以调用,这将做到这一点?

提前致谢

如果你想知道它可能是什么,你可以尝试注册你的视图的键值观察,如下所述: http : //developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving html的

您可以注册以侦听对frame属性的更改,然后在observe方法中设置一个断点,以便您可以准确地查看将原点设置为奇怪值时堆栈跟踪的内容。

您正在使用当前的方法优先顺序:

 -(void)loadView; -(void)viewDidLoad; -(void)viewWillAppear; -(void)viewDidAppear; 

有没有可能是一个旋转调用或其他方法,如didRotateToInterfaceOrientation; 例如? 另外,这是从一个笔尖文件加载的控制器的滚动视图的一部分?

20像素的差异和笔尖文件似乎总是悲哀,但与界面生成器和状态栏。 你是否设置了与你在应用程序中使用的相同状态栏状态的笔尖?

如果你已经隐藏你的应用程序的状态栏,你有没有在Interface Builder中做同样的事情?