UIView生命周期iOS Developer

生命周期和UIView的几个layout方法

2017-01-14  本文已影响660人  Mccc_

生命周期

1.jpg

1. loadView

每次访问UIViewController的view时候并且view == nil时候调用.

1> 如果在初始化UIViewController指定了xib文件名,就会根据传入的xib文件名加载对应的xib文件.如果没有明显地传xib文件名,就会加载跟UIViewController同名的xib文件.
2> 如果没有找到相关联的xib文件,就会创建一个空白的UIView,然后赋值给UIViewController的view属性.
例如:
self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];

2. viewDidLoad

3. viewWillAppear

视图将要出现 view已经显示,被加载到另一个view上了.

4. viewDidAppear

视图已经出现

5.viewWillDisappear

视图将要消失

6. viewDidDisappear

视图即将消失

init 和 intWithFrame

建议不要使用重写UIView的时候不要使用init方法,而使用initWithFrame.因为用init初始化的frame还没有.但是无论是init还是initWithFrame方法最终都会进入initWithFrame方法.在这个方法中创建子控件,可以保证无论哪种方式都可以成功创建。
init 内部会调用父类的 initWithFrame: 方法,只不过传入的 frame 的值为0,然后父类的 initWithFrame: 方法发现当前的调用对象是子类对象,所以就调用了子类的initWithFrame方法了。这是一个多态的应用。
- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; // 先调用父类的initWithFrame方法 if (self) { // 再自定义该类(UIView子类)的初始化操作。 } return self; }

layoutSubviews

drawRect

setNeedDisplay 和 setNeedsLayout

上一篇下一篇

猜你喜欢

热点阅读