5 ViewControl 的生命周期 - 斯坦福 iOS
2016-05-06 本文已影响100人
以太死多
import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
1.创建View
//如果是从 storyboard 中创建 调用 - (void)awakeFormNib{} 方法
//否则调用下面方法
- (instancetype)initWithNibName:(NSString *)name bundle:(NSBundle *)bundle{
if(self = [super initWithNibName:name bundle:bundle]){
}
return self;
}
2.初始化View
(只会调用一次(相当于init), 注意不要在其中放入 UI 的代码, 因为调用此方法时 View 的边界还没有确定)
- (void)viewDidLoad {
[super viewDidLoad];
// NSLog(@"%@",[UIFont familyNames]);
// NSLog(@"%@",[UIFont fontNamesForFamilyName:@"PingFang TC"]);
}
3.将要布局View时调用
包括从横屏到竖屏,可在其中添加几何相关代码(自动布局)
- (void)viewWillLayoutSubviews{
}
4.View自动布局完成后调用
因为不是所以的都可以自动布局, 有些需要手动, 这时候就使用此方法(手动布局)
- (void)viewDidLayoutSubviews{
}
5.view将要显示的时候调用(会多次调用)
很大一部分功能是同步数据. 注意在不同界面切换时会反复调用, 所以不要在其中放入 init 的内容.
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
}
6.view将要退出显示的时候调用
适合用于停止一些服务和操作, 减少 CPU 占用
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
}
7.view在屏幕显示之后调用
- (void)viewDidAppear:(BOOL)animated{
}
8.view在退出屏幕之后调用
- (void)viewDidDisappear:(BOOL)animated{
}
9.内存不足时会调用
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}