iOS自定义View控件调用系统方法的区别

1、load:加载类到内存,程序刚启动的时候调用,调用在main函数之前(只会被调用一次)

 2、initialize:初始化类,类第一次使用的时候调用一次(只会被调用一次)

 3、loadView:首先判断控制器是否有视图,没有就调用该方法,设置控制器的根view,重写该方法后,以该方法为主,xib ,storyboard文件将不再起作用。

 

 4、initWithCoder:这个解档方法是当控件是从xib、storyboard中创建时,会调用这个方法。

5、awakeFromNib:加载xib完成时调用,这个方法是在initWithCoder:方法后调用,一开始经过initWithCoder创建出来的控件是死的,然后通过awakeFromNib来唤醒,所以这会有一个先后的调用顺序:initWithCoder  -> awakeFromNib  -> viewDidLoad -> viewWillAppear-> initWithFrame 

 6、viewDidLoad:视图加载完成

 7、viewWillAppear:视图将要出现

8、initWithFrame:使用手码创建控件时,一般我们在该方法里动态添加组件&设置自身的一些属性。外界调用init方法,系统内部也会自动调用这个方法。

 

 4、layoutSubviews:方便数据计算,一般我们在这个方法里计算frame,这个方法里是控件最后一次布局子控件。

 5、drawRect:方便视图重绘。

 6、initWithNibName:要加载的xib的类为我们定义的视图控制器类。是延迟加载,这个View上的控件是 nil 的,只有到 需要显示时,才会不是nil。 

 7、loadNibName:即时加载,用该方法加载的xib对象中的各个元素都已经存在。

猜你喜欢

转载自www.cnblogs.com/yuhao309/p/9497378.html