一、UIWindow
1、什么是UIWindow
管理和协调应用程序的显示。
UIWindow类是UIView的子类,可以看作是特殊的UIView(UIView之后介绍)。
一般应用程序只有一个UIWindow对象。
二、UIWidow对象有两种方式创建:
1、自动创建UIWindow对象
先执行Main函数,执行UIApplicationMain()创建代理
看项目配置文件info.plist里面的StoryBoard的name
根据这个name找到对应的StoryBoard,加载StoryBoard
在加载的时候创建一个window。
2、代码创建UIWindow对象
// 创建UIWindow对象
// [UIScreen mainScreen].bounds是屏幕大小
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 给window设置背景颜色(白色)
self.window.backgroundColor = [UIColor whiteColor];
// 使window显示
[self.window makeKeyAndVisible];
// 创建一个视图控制器
UIViewController *VC = [[UIViewController alloc] init];
// 给Window指定根视图控制器
self.window.rootViewController = VC;
二、UIView
1、什么是UIView
UIView表示屏幕上的一块矩形区域。
它在App中占有绝对重要的地位。
因为iOS中几乎所有可视化控件都是UIView的子类。
负责渲染区域的内容
并且响应该区域内发生的触摸事件。
2、UIView功能
管理矩形区域里的内容
处理矩形区域中的事件
子视图的管理
实现UIView动画
UIView作为父类,子类也具有这些功能
3、创建UIView
// 开辟空间创建UIView对象
// 设置frame确定UIView对象的位置以及大小
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
// 设置UIView对象的属性:设置背景颜色
view.backgroundColor = [UIColor redColor];
// 将创建好的UIView对象添加到Window上显示
[self.window addSubview:view];
4、frame
frame是UIView的重要属性,是我们用于视图布局的关键。
它决定了视图的大小和位置。
frame是CGRect类型。
frame是基于它父视图的坐标系而言的。
5、UIView常用属性
6、添加视图
7、应用程序的启动流程
main函数:
任何一个程序,无论是基于Mac OS还是iOS,程序都是从main.m文件的main函数开始执行的。
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
UIApplicationMain
UIApplicationMain在程序入口函数main函数中调用,主要实现了3个功能:
1.创建应用程序(UIApplication)实例
2.创建应用程序代理(AppDelegate)实例
3.建立事件循环(runloop:死循环,不断检测程序运行状态,是否被触摸、晃动等)
UIApplicationMain参数
nt UIApplicationMain (
int argc,
char *argv[],
NSString *principalClassName,
NSString *delegateClassName
);
1、principalClassName:应用程序对象的类名(UIApplication或其子类)
2、delegateClassName:应用程序delegate的类名。(任何接受了UIApplicationDelegate的类)
UIApplicationMain根据上述两个类名创建应用程序实例、应用程序代理实例。然后建立事件循环(runloop),检测程序的各种事件(程序开始启动,接收到触摸等等)
应用程序代理:
网友评论