CALayer & UIView

作者: LeeDev | 来源:发表于2018-12-13 11:59 被阅读0次

UiView 和 CALayer 的关系就是 典型的适配模式的经典应用
UIView 是 继承UIReponse, 同时 持有一个CALayer 的属性

1.讨论CALayer 的几个属性

1). CALayer 有个 重要的属性 就是 contents (就是CGImage 或者 NSImage ,说到底就是一个 位图 bitMap),其实后面设计到的绘制其实都是和这个属性有关
2). contentsGravity (UIView 中是contentMode) : 就是设置 位图的显示状态
3). contentsScale : 默认是 屏幕的scale,比如 值为2,就是说 我们的屏幕的一个点 绘制 2个像素点。
4).contentsRect: 这个是单位Rect, 比如设置(0,0,0.5,0.5) 显示单位位置的 这个区域
5).contentsCenter : 也是一个'单位rect' ,主要是 设置 哪些区域 不需要被拉伸,比如我们聊天的气泡

2. CALayer 的 绘制

其实就是怎么样去绘制 contents,那么就需要考虑我们的CALayerDelegate

1).首先 layer 去调用 setNeedDisplay的时候,在Runloop 的 beforeWaiting 的时机去 调用 -(void)displayLayer:(CALayerCALayer *)layer; (特别注意这个时候 调用 UIGraphicsGetCurrentContext(),返回的值是nil).
2).假设没有实现上面那个方法,就会调用 - (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx 这个时候 就获取到了ctx,但是 UIGraphicsGetCurrentContext() 任然为 nil
3).最后 如果 是 UIView 中,而且没有实现上面的代理的方法,那么就会 调用drawRect 方法;

相关文章

  • UIView & CALayer

    UIView是所有页面的鼻祖。其本质也是CALayer在作祟。UIView的一切属性基本都是由相应的calayer...

  • CALayer & UIView

  • CALayer & UIView

    UiView 和 CALayer 的关系就是 典型的适配模式的经典应用UIView 是 继承UIReponse, ...

  • UIView&CALayer

    UIview UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由Core Ani...

  • iOS UIView & CALayer

    iOS UIView & CALayer 其实UIView 之所以能显示在屏幕上, 完全是因为它内部的一个图层, ...

  • 问题汇总

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

  • CALayer与UIView的区别

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

  • UIView和CALayer

    1. UIView和CALayer CALayer负责显示内容contents UIView为CALayer提供现...

  • UIView和CALayer

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

  • UIView和CALayer

    UIView和CALayer 1: 从框架来说 CALayer 基于 QuartzCore 框架 UIView 基...

网友评论

    本文标题:CALayer & UIView

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