iOS开发之-(笔或面试)UIWindow和UIView和CALayer的联系和区别

在很多时候,都会笔试或者面试问到这个问题,其=自己总结了一下,可能其实和其他说的大同小异,但是结构要清晰。

一、UIWindow和UIView和CALayer的联系和区别;

//喜欢的点个❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️,关注成为粉丝吧。

1.UIWindow:

其实先说一下UIWindow,它在整个app当中只有一个UIWindow;

主要作用就是:提供一个区域用来显示UIView;将事件分发给UIView;与UIViewController一起处理屏幕的旋转事件。

2.接下来,当然就是常用到的UIView和CALayer;

UIView的继承结构为:UIResponder:NSObject

所属的框架是:/System/Library/Frameworks/UIKit.framework。UIKit主要是用来构建用户界面的,并且可以响应事件

当然对于UIView,侧重于对内容的显示管理;其实是相对于CALayer的高层封装。

3.CALayer

其实就是一个图层,UIView之所以能显示在屏幕上,主要是它内部有一个CALayer对象。在创建UIView时,它内部会自动创建一个图层,当UIView需要显示在屏幕上的时候,会调用drawRect:方法进行绘图,并且会将所有内容绘制到自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,这样完成UIView的显示。

CALayer的继承结构:NSObject

也就是直接继承NSObject,而不能够响应事件

所属的框架:/System/Library/Frameworks/QuartzCore.framework;

总结一下:(可能不太恰当,自己面试或者传授的时候,进行整理可以)

UIWindow、UIView、CALayer三者的关系

UIWindow:是UIView的子类,主要作用就是:提供一个区域来显示UIView;事件的分发

UIView:用来显示内容,可以进行用户事件的处理;

CALayer:用来绘制内容的,对内容进行动画处理,在UIView上进行显示,不能处理响应事件。

UIView和CALayer是相互依赖的关系。其实一切都可以从CALayer说起。

//喜欢的点个❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️

你可能感兴趣的:(iOS开发之-(笔或面试)UIWindow和UIView和CALayer的联系和区别)