iOS各个回调函数的执行顺序

参照一位网友的blog:http://www.cnblogs.com/dsxniubility/p/4322525.html

 

一般的执行顺序没什么问题,主要是view的布局时候需要特别注意,看是在哪个回调函数里才能得到正确的布局,在UIView类里的话,是在layoutSubviews方法里,如果是这个UIVIew所对应的UIVIewController类里的话,那就是viewDidLayoutSubviews方法了。

 

但是一定要注意的是,UIVIewController.viewDidLayoutSubviews这个方法是在所管理的UIView布局完后就调用了,但是这时候UIView里的SubView的并还没有布局好!!!(苹果这是几个意思???)

 

以上只是启动阶段回调函数的执行顺序。

根据国外友人的一篇blog:http://kevindew.me/post/18579273258/where-to-progmatically-lay-out-views-in-ios-5-and

当启动完成后,如果设备进行旋转的话,会调用以下方法

[UIViewController willRotateToInterfaceOrientation:duration:]
[UIViewController viewWillLayoutSubviews]
[UIView layoutSubviews]
[UIViewController viewDidLayoutSubviews]
[UIViewController willAnimateRotationToInterfaceOrientation:duration:]
[UIViewController shouldAutorotateToInterfaceOrientation:]
[UIViewController didRotateFromInterfaceOrientation:]

当呈现一个新的UIViewController时

[UIViewController loadView]
[UIViewController viewDidLoad]
[UIViewController viewWillAppear:]
[UIViewController shouldAutorotateToInterfaceOrientation:]
[UIViewController viewWillLayoutSubviews]
[UIView layoutSubviews]
[UIViewController viewDidLayoutSubviews]
[UIViewController viewDidAppear:]

当呈现的UIViewController关闭时

[UIViewController viewWillAppear:] - Note correct bounds here
[UIViewController viewWillLayoutSubviews]
[UIView layoutSubviews]
[UIViewController viewDidLayoutSubviews]
[UIViewController viewDidAppear:]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值