[Objective-C] 018_UIView(下)
UIView对象在创建后,由UIViewController进行维护和管理。整个生命周期分为:创建视图,显示视图,隐藏视图和释放视图,在UIViewController中都有对应的方法。
1. init (UIViewController对象初始化,初始化数据)
- (instancetype)init
{
self = [super init];
if (self) {
_myTestView = [[TestView alloc] init];
self.myTestView = _myTestView;
}
return self;
}
2. loadView (从nib载入视图 ,通常这一步不需要去干涉。除非没有使用xib文件创建视图)
- (void)loadView {
[super loadView];
NSLog(@"正在加载view...");
}
3. viewDidLoad (视图载入完成,通常在这里进行自定义数据或者创建其他控件,只在app刚开始加载的时候调用一次)
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"view加载完成");
[self.view addSubview:_myTestView];
}
4. viewWillAppear (视图将出现在屏幕之前,这个视图马上就会被显示在屏幕上了)
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"view马上就要显示了...");
}
5. viewDidAppear (视图已在屏幕上显示)
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"view已经显示了...");
}
6. viewWillDisappear (视图即将被从屏幕上移除之前执行)
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"view将要移除了");
}
7. viewDidDisappear (视图已经被从屏幕上移除,看不到这个视图了)
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"view已经移除了");
}
8. dealloc (viewCotroller销毁时调用,通常对在init和viewDidLoad中创建的对象进行释放)
- (void)dealloc
{
[_myTestView release];
[super dealloc];
}
ViewController.m
#import "ViewController.h"
#import "TestView.h"
@interface ViewController ()
@end
@implementation ViewController
- (instancetype)init
{
self = [super init];
if (self) {
_myTestView = [[TestView alloc] init];
self.myTestView = _myTestView;
}
return self;
}
- (void)loadView {
[super loadView];
NSLog(@"正在加载view...");
}
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"view加载完成");
[self.view addSubview:_myTestView];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"view马上就要显示了...");
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"view已经显示了...");
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"view将要移除了");
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"view已经移除了");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc
{
[self.myTestView release];
[super dealloc];
}
@end
AppDelegate.m ,TestView.h ,TestView.m
#import "ViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
//设置window背景色
self.window.backgroundColor = [UIColor clearColor];
//让window显示
[self.window makeKeyAndVisible];
UIViewController *root = [[ViewController alloc] init];
self.window.rootViewController = root;
[root release];
return YES;
}
-(void)dirHome{
NSString *dirHome=NSHomeDirectory();
NSLog(@"app_home: %@",dirHome);
}
@end
//////////////////////// TestView.h /////////////////////
#import <UIKit/UIKit.h>
@interface TestView : UIView
@end
//////////////////////// TestView.m /////////////////////
#import "TestView.h"
@implementation TestView
- (instancetype)init
{
self = [super init];
if (self) {
NSLog(@"view始化...");
}
return self;
}
@end
测试结果:
2015-08-24 22:10:51.157 Attendance[34363:1490584] view始化...
2015-08-24 22:10:51.159 Attendance[34363:1490584] 正在加载view...
2015-08-24 22:10:51.159 Attendance[34363:1490584] view加载完成
2015-08-24 22:10:51.159 Attendance[34363:1490584] view马上就要显示了...
2015-08-24 22:10:51.428 Attendance[34363:1490584] view已经显示了...

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4756021.html

浙公网安备 33010602011771号