美文网首页
UIView与CALayer的关系

UIView与CALayer的关系

作者: whbsspu | 来源:发表于2017-08-17 14:49 被阅读30次

UIView与CALayer

我们都知道每个UIView都包含一个CALayer,并且很多的操作都是直接对layer的操作,比如设置圆角、阴影、边框等等。
从本质上来说,UIView是在CALayer上的封装,是一个比较简单的封装。并在CALayer的基础之上添加了手势识别等特性。

这里我们会产生两个问题:

1、为什么说UIView是CALayer的一个简单的封装?

首先CALayer是QuartzCore库内的类,QuartzCore/CALayer的类定义里面有很多属性(变量)及方法在<UIKit/UIView>中可以找到几乎一模一样的对应;比如frame、hiden等。但也有很多方法是UIView所没有的,所以UIView只是把CALayer常用的接口(属性和方法)暴露出来了,让View更容易使用。这就是为什么说UIView是在CALayer一个比较简单的封装。

2、为什么不直接使用CALayer而要封装一个UIView?

iOS平台的Cocoa Touch是源于OS X平台的Cocoa,是在Cocoa的基础之上添加了适用于移动手机设备的手势识别、动画等特性。但从底层上来说Cocoa Touch和Cocoa共用一套底层的库。其中就包括了QuartCore.framework;但QuartCore.framework一开始就是为OS X设计的,所以其中有部分特性是不适合做移动设备开发的,比如最重要的坐标系统。因此,我们也就不难理解为何UIView/NSView在CALayer上做了一层封装。

以上就是UIView与CALayer的主要关系。

相关文章

  • 简述CALayer和UIView的关系

    简述CALayer和UIView的关系 答:UIView和CALayer是相互依赖的关系。UIView依赖与cal...

  • 动画

    动画 Animation 1.CALayer简介 1.1 CALayer与UIView之间的关系 UIView 能...

  • iOS-CALayer详解与应用

    view与layer的关系 CALayer属性表如下 CALayer和UIView的区别 UIView是UIKit...

  • UI事件传递&响应

    UIView与CALayer的关系与区别 UIView为CALayer提供内容,以及负责触摸等事件,参与响应链CA...

  • UI事件传递与响应

    先了解下UIView与CALayer的关系 UIView为CALayer提供内容,负责处理触摸事件,参与响应链 ,...

  • UIView&CALayer

    一、UIView与CALayer的关系 UIView属性持有layer,layer的代理是UIView 二、dra...

  • CALayer和UIView详解

    关于UI的继承关系图: CALayer & UIView 区别 概念 CALayer和UIView的关系 可以说:...

  • 2018-07-30 面试题总结

    1.UIView 与CALayer的关系 每个UIView内部都有一个CALayer在背后提供内容的绘制和显示,并...

  • CALayer与UIView的区别

    CALayer与UIView的区别 基础 CALayer的定义 CALayer的基础 CALayer和UIView...

  • UIView和CALayer

    UIView和CALayer和有什么关系 UIview中有个属性layer,是CALayer类型。 CALayer...

网友评论

      本文标题:UIView与CALayer的关系

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