视图控制器的生命周期
控制器自带的view将要显示时调用
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
控制器自带的view显示完以后调用
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
控制器自带的试图将要从window上移除时调用
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
控制器自带的试图已经从window上移除时调用
- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
当系统报内存警告是会调用这个方法,如果此时不处理,系统就可能崩溃
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
控制器上的试图将要被销毁时调用
- (void)viewWillUnload{
[super viewWillUnload];
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
控制器上的试图销毁完毕时调用
- (void)viewDidUnload{
[super viewDidUnload];
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
一、main.m
1、main函数,程序唯一的入口
2、UIApplicationMain函数函数作用
1)创建一个应用程序UIApplication对象,他是应用程序的象征,一个UIApplication对象就代表一个应用程序
2)指定谁管理应用程序的生命周期
2)建立一个事件循环来捕捉处理用户的行为
3、永远不用尝试改变main.m中的内容
二、程序的生命周期
1、UIApplication对象实例化后,程序启动时首先会调用该方法
- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
2、当应用程序将要进入非活动状态执行,比如来电话了、锁屏等。
- (void)applicationWillResignActive:(UIApplication *)application
3、当应用程序进入活动状态执行,这个刚好跟上面那个方法相反
- (void)applicationDidBecomeActive:(UIApplication *)application
4、一般程序进入后台,就会进入非活跃状态,但如果你的程序支持后台,程序在后台也保持活跃状态
- (void)applicationDidEnterBackground:(UIApplication *)application
5、程序进入前台
- (void)applicationWillEnterForeground:(UIApplication *)application
6、当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作
- (void)applicationWillTerminate:(UIApplication *)application
7、找到info.plist文件,添加Application does not run in background,并设置YES,使应用不支持后台操作,一旦退到后台程序就退出
三、UIWindow
1、在iOS中,使用窗口与试图在屏幕上显示应用程序的内容,窗口本身不具有任何可见的内容,但他对于应用程序的试图提供一个基本的容器,试图定义你想要的一些内容,例如:图像、文本、表格等等
2、程序中每个时刻只能有一个UIWindow是keyWindow,通常应用程序只有一个window
3、iOS程序启动完毕后,会首先创建一个UIWindow
4、一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow,也就是说没有UIWindow,就看不见任何UI界面
5、常用方法
1)让当前UIWindow变成keyWindow(主窗口)
- (void)makeKeyWindow;
2)让主窗口显示出来
- (void)makeKeyAndVisible;
四、程序的完整启动过程
1、main函数
2、UIApplicationMain
1)创建UIApplication对象
2)创建UIApplication的delegate对象
3、delegate对象开始处理(监听)系统事件
1)程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
2)在application:didFinishLaunchingWithOptions:中创建UIWindow
3)创建和设置UIWindow的rootViewController
4)显示窗口
五、手机屏幕的几个概念
1、UIScreen
可以充当iOS物理屏幕的替代者,
[UIScreen mainScreen] bounds] 能够获取屏幕大小
2、屏幕尺寸
指具体的屏幕物理长度,以屏幕的对角线的长度作为试试
3、像素
图像由一个个点组成,这个点叫做像素
4、屏幕分辨率
指屏幕屏幕上总共的物理像素点
5、屏幕尺寸
设备 屏幕尺寸 分辨率(pt) reader 分辨率(px)
3GS 3.5 320*480 @1x 320*480
4/4S 3.5 320*480 @2x 640*960
5/5S/5C 4.0 320*568 @2x 750*134
6 4.7 375*667 @2x 750*1334
6P 5.5 414*736 @3x 1242*2208
pt: 用于计算屏幕上的坐标
六、iOS坐标系统
1、iPhone的试图坐标系是以左上角为原点
2、每一个view的frame所使用的坐标系以它的父试图的左上角为原点
3、试图结构和相关函数
试图显示的位置
CGPoint point = CGPointMake(x,y)
试图显示的大小
CGSize size = CGSizeMake(width,height)
试图显示的位置和大小
CGRect rect = CGRectMake(x,y,width,height);
4、frame/Bounds/center
frame: 包含试图的位置和大小
Bounds:包含试图的大小,位置默认是(0,0)
center:包含试图中心点所在的位置