iOS自定义View控件调用系统方法的区别
Posted 桥边风满袖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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对象中的各个元素都已经存在。
以上是关于iOS自定义View控件调用系统方法的区别的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发UI篇—Quartz2D(自定义UIImageView控件)