1.执行原理
a.首先执行main函数 调用UIApplicationMain方法
return UIApplicationMain(argc, argv, nil, NSStringFromClass([MLKAppDelegate class]));
>UIApplicationMain函数内部创建一个UIApplication实例。UIApplication对象是单例,一个iOS应用对应一个Application。UIApplication对象是应用程序的象征。
>创建一个UIApplication对象之后再创建一个UIApplication的delegate对象,负责监听UIApplication的生命周期。
2.应用程序的生命周期
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
应用程序加载完毕后被调用。
- (void)applicationWillResignActive:(UIApplication *)application
在应用程序将要由活动状态切换到非活动状态时候调用,如按下home按钮,返回主屏幕,或全屏之间切换应用程序等。
- (void)applicationDidEnterBackground:(UIApplication *)application
在应用程序进入后台调用(按下home键);
- (void)applicationWillEnterForeground:(UIApplication *)application
在应用程序进入前台被调用
- (void)applicationDidBecomeActive:(UIApplication *)application
应用程序获取焦点被调用。
- (void)applicationWillTerminate:(UIApplication *)application
在应用程序要完全推出的时候。
3.UIWindow对象是所有UIView的根视图,管理和协调的应用程序的显示、分发事件给View。UIWindow类是UIView的子类,可以看作是特殊的UIView。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。UIWindow初始化在appDeleDgate里面的 didFinishLaunchingWithOptions方法。
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
UIView:视图,屏幕上能看得见摸得着的东西都是UIView比如按钮、文本标签、表格。类继承自UIResponder,负责在屏幕上 定义一个矩形区域,视图用于展示界面及响应用户界面交互。每个视图对象都要负责渲染视图区域的内容,并响应该区域中发生的操作事件。
除了显示内容和处理事件之外,视图可以嵌套并管理子视图。子视图是指嵌入到另一视图对象内部的视图对象,而被嵌入的视图对象是父视图。视图添加到window中就会显示出来,iOS中是怎么实现视图显示的,看下面的代码
UIViewController:内部默认有一个UIView视图,负责管理UIView的生命周期,装载数据到UIView上显示,处理UIView的生命周期,装载到UIView上显示处理UIView事件。