5 ViewControl 的生命周期 - 斯坦福 iOS

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.
}

@end

你可能感兴趣的:(5 ViewControl 的生命周期 - 斯坦福 iOS)