开发者

iPhone: What gets called after viewDidLoad before viewWillAppear?

Really strange behaviour here. I've got a view with a scroll view inside, which contains my interface.

In my viewDidLoad, I set the frame of my scrollView to have an origin of 0,0.

I log the origin at the end of my viewDidLoad, and it's 0. However, at the start of my viewWillAppear, the origin is -20. Does anyone know what kind of me开发者_JAVA百科thod could get called that would do this?

Thanks in advance


You are correct with the current method precedence:

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

Is there perhaps a rotation call or some other method in the way, such as didRotateToInterfaceOrientation; for example? Also, is this scroll view part of a controller that's loaded from a nib file?


If you want to find out what it could be, you can try registering your view for key value observing, as described here: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html

You can register to listen for changes to the frame property, and then set a breakpoint in the observe method which should let you see exactly what the stacktrace is for when your origin is set to the strange value.


20 pixel discrepancies and nib files always seem to be woe, but with Interface Builder and status bars. Are you setting up the nib with the same status-bar state as what your using in your app?

If you've hidden your status bar in your app, have you done the same in Interface Builder?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜