UIWindow、UIView以及CALayer之间的关系
2016-05-11 20:46
603 查看
UIWindow
1.简介
UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow。
2.作用
a.包含程序所有要显示的视图;
b.传递手势消息到其它的UIView对象或者其它对象;
c.与UIViewController一起处理屏幕旋转。
3.初始化
a.使用storyboard
如果为应用程序创建了一个storyboard,并在info.plist中将其指定为main storyboard,那么在应用程序启动的时,iOS会自动帮程序员做这样几件事情:
1).实例化一个window;
2).加载main storyboard,并且实例化其中的root view controller;
3).将这个view controller赋值给window.rootViewController,并显示这个window。
b.使用nib文件
如果使用nib文件的话。将一个window对象拖拽到Interface Builder文件中,并将其指定为应用程序的main interface。那么在app启动的时候,iOS也会自动创建window对象。但是为了确保window的大小与屏幕大小一致,需将Interface Builder中对window对象中的Full Screen at Launch这个属性勾选。
c.纯代码
UIView
1.简介
UIView表示屏幕上的一块矩形区域,它几乎事IOS中所有可视化控件的父类。
2.作用
1).管理矩形区域里的内容;
2).处理矩形区域中的事件;
3).子视图的管理;
4).还能实现动画。
3.初始化
CALayer
1.简介
UIView之所以能显示在屏幕上,是因为它内部的一个图层,即CALayer对象。在创建UIView对象时,UIView内部会自动创建一个图层(CALayer对象),当UIView需要显示在屏幕上的时候,会调用drawRect:方法进行绘图,并且会将所有内容绘制到自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,这样完成UIView的显示。
2.作用
主要负责UIViewde的视图绘制。
UIWindow、UIView、CALayer三者的关系总结
UIView是用来显示内容的,可以进行处理用户事件。
CALayer是用来绘制内容的,对内容进行动画处理依赖与UIView来进行显示,不能处理用户事件。
UIwindow是UIView的子类,UIWindow的主要作用:一是提供一个区域来显示UIView,二是将事件的分发给UIView,一个应用基本上只会有一个UIWindow。
1.简介
UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow。
2.作用
a.包含程序所有要显示的视图;
b.传递手势消息到其它的UIView对象或者其它对象;
c.与UIViewController一起处理屏幕旋转。
3.初始化
a.使用storyboard
如果为应用程序创建了一个storyboard,并在info.plist中将其指定为main storyboard,那么在应用程序启动的时,iOS会自动帮程序员做这样几件事情:
1).实例化一个window;
2).加载main storyboard,并且实例化其中的root view controller;
3).将这个view controller赋值给window.rootViewController,并显示这个window。
b.使用nib文件
如果使用nib文件的话。将一个window对象拖拽到Interface Builder文件中,并将其指定为应用程序的main interface。那么在app启动的时候,iOS也会自动创建window对象。但是为了确保window的大小与屏幕大小一致,需将Interface Builder中对window对象中的Full Screen at Launch这个属性勾选。
c.纯代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //创建window self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //为window设置背景颜色 self.window.backgroundColor = [UIColor whiteColor]; //将该window设置成主视图并显示 [self.window makeKeyAndVisible]; return YES; }
UIView
1.简介
UIView表示屏幕上的一块矩形区域,它几乎事IOS中所有可视化控件的父类。
2.作用
1).管理矩形区域里的内容;
2).处理矩形区域中的事件;
3).子视图的管理;
4).还能实现动画。
3.初始化
UIView *someView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; [self.view addSubview:someView];
CALayer
1.简介
UIView之所以能显示在屏幕上,是因为它内部的一个图层,即CALayer对象。在创建UIView对象时,UIView内部会自动创建一个图层(CALayer对象),当UIView需要显示在屏幕上的时候,会调用drawRect:方法进行绘图,并且会将所有内容绘制到自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,这样完成UIView的显示。
2.作用
主要负责UIViewde的视图绘制。
UIWindow、UIView、CALayer三者的关系总结
UIView是用来显示内容的,可以进行处理用户事件。
CALayer是用来绘制内容的,对内容进行动画处理依赖与UIView来进行显示,不能处理用户事件。
UIwindow是UIView的子类,UIWindow的主要作用:一是提供一个区域来显示UIView,二是将事件的分发给UIView,一个应用基本上只会有一个UIWindow。
相关文章推荐
- tableView性能优化cell循环利用 && 自定义cell
- IOS程序开发-UI基础
- LeetCode:Range Sum Query - Immutable
- 优先队列(priority_queue)的cmp,POJ(2051)
- youi软件测试计划
- marquee标签实现页面内容的滚动效果
- hdu 5288 OO's sequence【因子分解】
- 页面 和 Action 中如何获取 国际化资源文件的 value值 ?
- Servlet & JSP - Decorating Requests and Responses
- iOS开发之基础视图——UISegmentedControl
- iOS开发 - 第02篇 - UI进阶 - 01 - ScrollView
- iOS UIKit:TableView之单元格配置(2)
- iOS开发之基础视图— UISwitch
- android Activity runOnUiThread() 方法使用
- UIGesture
- 树——unique-binary-search-trees
- bLue 的乘法算术题--Java大数
- poj 2081 Recaman's Sequence
- 使用 Google AutoValue 自动生成代码
- Quicksort