awakeFromNib
创建控制器并勾选xib时不会进awakeFromNib,只有在创建view时会进awakeFromNib
awakeFromNib 从xib或者storyboard加载完毕就会调用
awakeFromNib和viewDidLoad的区别是awakeFromNib在ViewDidLoad之前执行,如果view想改变自己的颜色或者位置,则在awakeFromNib中设置,因为view被load之后再改就来不及了,所以只能在view被load之前进行设置。
initWithCoder 是当从nib文件中加载对象的时候会调用,比如你的view来自nib那么就会调用这个view的这个函数。(由框架调用)
initWithFrame (是由用户调用,来初始化对象的)
initWithNibName方法:是延迟加载,这个View上的控件是 nil 的,只有到 需要显示时,才会不是 nil,初始化UIViewController
loadNibNamed方法:即时加载,用该方法加载的xib对象中的各个元素都已经存在。
- (void)viewWillAppear:(BOOL)animated
{
NSLog(@"viewWillAppear");
}
- (void)viewDidAppear:(BOOL)animated
-(void)viewWillLayoutSubviews
view即将布局其Subviews。比如view的bounds改变了(例如状态栏从不显示到显示,视图方向变化),要调整Subviews的位置,在调整之前要做的一些工作就可以在该方法中实现。
-(void)viewDidLayoutSubviews
view已经布局其Subviews。比如view的bounds改变了(例如状态栏从不显示到显示,视图方向变化),已经调整Subviews的位置,在调整完成之后要做的一些工作就可以在该方法中实现。
-(void)viewWillDisappear:(BOOL)animated
view即将superView中移除,移除动画切换之后调用,此时还没调用removeFromSuperview。
-(void)viewDidDisappear:(BOOL)animated
view从superView中移除,移除动画切换之后调用,此时已调用removeFromSuperview。
-(void)viewWillUnload
{
NSLog(@"viewWillUnload");
}
-(void)viewDidUnload
{
NSLog(@"viewDidUnload");
}
参考:
http://blog.csdn.net/dizzthxl/article/details/14170047
网友评论