美文网首页iOS面试题iOS开发iOS Developer
iOS开发之-(笔或面试)UIWindow和UIView和CAL

iOS开发之-(笔或面试)UIWindow和UIView和CAL

作者: A迷城 | 来源:发表于2017-06-04 09:41 被阅读157次

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

    一、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说起。

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

    相关文章

      网友评论

      • boovit:不止一个window噢!
        e51a9a98a6b1:应该是应用程序当前只有一个key window。
        c52805e532f5: @boovit 能解释一下,window吗?我也以为只有一个呢
        A迷城:@boovit 欢迎解释。谢谢。:stuck_out_tongue:
      • 不停地动:真牛逼,只有一个window

      本文标题:iOS开发之-(笔或面试)UIWindow和UIView和CAL

      本文链接:https://www.haomeiwen.com/subject/wslvfxtx.html