UIWindow、UIView以及CALayer之间的关系

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值