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

时间:2011-07-25 19:10:56

标签: iphone objective-c ios uiview uiscrollview

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

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

我在viewDidLoad的末尾记录原点,它是0。 但是,在viewWillAppear开始时,原点是-20。 有谁知道可以调用什么样的方法呢?

提前致谢

3 个答案:

答案 0 :(得分:31)

您使用当前方法优先级是正确的:

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

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:2)

20个像素差异和nib文件似乎总是很祸,但是使用Interface Builder和状态栏。您是否使用与在应用中使用相同的状态栏状态设置笔尖?

如果您在应用中隐藏了状态栏,是否在Interface Builder中完成了相同的工作?