美文网首页
1、UIView与CALayer的区别

1、UIView与CALayer的区别

作者: Shineyok | 来源:发表于2020-07-14 16:56 被阅读0次

简单来说 两者区别为:

UIView为CALayer提供内容、以及负责处理触摸等事件,参与响应链。

CALayer负责显示内容。

具体来说:

1、UIView主要是对显示内容的管理,而CALayer主要是对显示内容的绘制。

严格来说,UIView是CALayer的CALayerDelegate,在代理方法内部[CALayerDelegate drawLayer:inContext]中调用UIView的DrawRect方法,从而绘制出UIView的内容。

2、UIView可以响应事件,Layer不可以。

UIKit使用UIResponder作为响应对象,来响应系统传递过来的事件并进行处理,UIApplication、UIViewController、UIView和一切从UIView派生出来的UIKit类都直接或者间接继承自UIResponder。而UIResponder中定义了处理各种事件和事件传递的接口。

而CALayer直接继承自NSObject,并没有响应的处理事件的接口。

3、在做iOS动画的时候,修改RootLayer的属性(譬如位置、背景色等)会产生默认的隐式动画,而修改UIView不会。原因是UIView默认情况下禁止了Layer动画,但是在animation block中重新启用了它们。可以通过动画事务(CATransaction)去关系隐式动画

任何可动画的CALayer属性改变时,layer都会寻找运行合适的action来实现这个改变,layer向它的delegate发送actionForLayer:ForKey:消息来询问提供一个对应属性变化的action

4、每个UIVIew内部都有一个CALayer在背后提供内容的绘制和显示,并且UIView的样式和尺寸都由内部的Layer所提供。两者都有树状层级结构,layer内部有subLayers,View内部有SubViews,但是Layer比view多了个AnchorPoint

5、UIView和CALayer的frame映射及View如何创建CALayer

一个Layer的frame是由它的anchorPoint、position、bounds、transforms共同决定的,而view的frame只是简单的返回了layer的frame,同样的,View 的center和bounds也是返回Layer的一些属性。

相关文章

  • 问题汇总

    1、UIView和CALayer区别UIView和CALayer的区别.UIView相对于CAlayer来说就多了...

  • UIView与CALayer || frame与boun

    1、UIView 与 CALayer 区别 UIView可以传递事件而CALayer无法参与事件传递,这个...

  • CALayer与UIView的区别

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

  • UIView和CALayer

    问题:UIView和CALayer的区别与联系是什么?UIWindow和UIView和CALayer 的联系和区别...

  • 图层和视图的区别

    图层就是CALayer 视图是UIView CALayer与UIView基本一一对应,但是区别在与UIView有事...

  • UIView和CALayer

    UIView和CALayer的区别1.UIView和CALayer的最大区别在于UIView可以响应用户事件,而C...

  • iOS-CALayer详解与应用

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

  • ios面试总结

    UIView与CALayer的区别? UIView继承于UIResponder->NSObjectCALayer继...

  • UIView和CALayer的区别和联系

    UIView和CALayer的区别和联系 1.UiView和CALayer是什么 CALayer 是动画中经常使用...

  • UI事件传递&响应

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

网友评论

      本文标题:1、UIView与CALayer的区别

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