本节学习内容:
1.UIWindow的对象概念
2.UIWindow和UIView的关系
【AppDelegate.m】
//当程序框架初始成功后,调用此函数,此函数用来初始化整个程序框架结构
//整个程序对IOS开发的入口函数
-(BOOL)application:(UIApplication *)applictaion didFinishLaunchingWithOprions:(NSDictionary *)lacunchOptions{
//创建一个UIWindow对象,整个程序中只有一个UIWindow对象,在程序基本上表示屏幕窗口
//UIWindow也是继承于UIWiew,UIWindow是一个特殊的UIWiew
//UIScreen:表示屏幕硬件,表示屏幕上的一个类
//mainScreen获得主屏幕信息
//bounds表示屏幕的值
self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bouns];
//创建一个视图控制器做为UIWind的视力控制器
self.window.rootViewController=[[UIViewController alloc] init];
//设置背景颜色
self.window.bakcgroundColor=[UIColor whiteColor];
//创建视图
UIView *view=[[UIView alloc]initWithFrame:CGREctMake(100,100,150,150)];
//view背景颜色
view.backgroundColor=[UIColor orangeColor];
//创建一个背景视图
UIView *bakcView=[[UIView alloc]initWithFrame:CGREctMake(100,100,150,150)];
bakcView.backgroundColor=[UIColor greenColor];
//将backView做为view的父亲视图,子视图的坐标是参照父视图的坐标系,当父视图移动时,所有的子视图都会移动
[bakcView addSubview:view]
[self.window addSubview:view];
//每个view都有一个window属性
view.window;
backview.window;
//使用window有效并显示到屏幕上
[self.window makeKeyAndVisible】;
NSLog(@"%@",view.window);
NSLog(@"%@",backview.window);
NSLog(@"%@",self.window);
//打印结果: <UIWindow:0x7f9e161ce40;frame=(0 0;320 568);gesureRecognizers=<NSArray:0x7f1e161dbc0》;layer=<UIWindowLayer:0x7f91e1612070>>
//:以上三个日志打印结果相同
//如下window等于self.window
//self.window.rootViewController.view.window;
return YES;
}
【UIWindow和UIView的关系】