1.viewDidload()
执行完此方法,会加载完controller的view的相关资源,只调用一次;UICotrol的方法
- (void)viewDidload
2.alloc
UI控件的创建,分配一定的内存;创建控件的时候调用一次;NSObject的类方法
同时每次也会调用一次:+ (instancetype)allocWithZone:方法
+(instancetype)alloc
3.init
初始化一个程序,NSObject的对象方法;应用场景:自定义控件,会重写此方法;
代码定义控件:在方法中加载子控件,返回self;
xib自定义控件:写此方法,拿到xib的view
-(instancetype)init
4.initWithFrame
设置控件的尺寸大小;init同时给对象设置尺寸的时候调用;只调用一次
当调用init方法,会自动调用此方法,初始化控件的尺寸大小
-(CGRect)initWithFrame:( CGRect)frame
5.setFrame
控件显示出来后;set方法不解释;给控件设置尺寸大小使用;调用一次
创建控件显示到view之前,set方法会在init中自动调用一次;然后执行init方法;
- (void)setFrame:(CGRect)frame
6.layoutSubviews
当控件在view显示后, 尺寸值改变会调用; 当控件尺寸大小一次,调用一次
当控件在view显示前,调用创建对象时候,在 -(void)viewWillAppear(后续会介绍) 中会自动调用这个方法;
⚠:当在xib或者storyboard定义的控件,当有autolayout,创建的控件会根据auto layout调会原尺寸;之后显示在view上
- (void)layoutsubviews
7.viewWillAppear
view即将显示的时候会调用:
当你添加[self.view1 addsubview:view]此方法,告诉要控制器要显示view;
说明此时才会调用viewWillAppear这个方法;,UIControl对象方法
(上述layoutsubview):此时会调用layoutsubviews方法;如有有约束,按默认的约束显示;
- (void)viewWillAppear
8.viewDidAppear
此时控件已经显示在view上了,UICotrol的对象方法
-(view)viewDidAppear
9.代码方式自定义控件:
init控件或者自定义init方法;用init方法创建控件,同时自动调用set方法,initframe方法
10.xib方法自定义控件;
会自动调用这都会两个方法,只调用一次
- (instancetype)initWithCoder:(NSCoder *)aDecoder
- (void)awakeFromNib
当xib创建的控件有子控件,想通过外界view的frame对子控件设置frame
会以xib的尺寸显示;原子控件的frame;若像修改,在layout后面自定义frame- (void)layoutSubviews
{
[super layoutSubviews];
self.scroll.frame = self.bounds;
}
11.viewWillDisappear
view从UIWindow上即将消失,但是view还在;一般是作用于控制器的界面在切换的时候;
- (void)viewDidDisappear:(BOOL)animated
12.viewDidDisappear
view从uiwindow上已经消失,但是view还在;
- (void)viewDidAppear:(BOOL)animated
13.viewWillUnload
当接受到内存警告,会调用此方法;销毁没有使用的view
- (void)viewWillUnload
14.viewDidIUnload
当控制器的view被销毁,不存的时候调用
- (void)viewDidUnload
网友评论