CALayer的那些事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CALayer的那些事相关的知识,希望对你有一定的参考价值。

        这一篇是关于CALayer的自定义:

不管时UIView还是CALayer,绘制图形的步骤都差不多分这三步:

(1)获取上下文

(2)绘制图形

(3)渲染图形


注意点:

(1)CALayer里绘制的图形默认为无色,不会显示。要想让绘制的图形显示出来,还需要设置图形的颜色。注意不能直接使用UI框架中的类

(2)在自定义layer中的-(void)drawInContext:方法不会自己调用,只能自己通过setNeedDisplay方法调用,在view中画东西DrawRect:方法在view第一次显示的时候会自动调用。

说明:在UIView中绘制图形,获取的上下文就是这个view对应的layer的上下文。在渲染的时候,就是把图形渲染到对应的layer上。在执行渲染操作的时候,本质上它的内部相当于执行了 [self.layer drawInContext:ctx];

当然还有第二种方法(代理) 设置CALayer的delegate,然后让delegate实现drawLayer:inContext:方法,当CALayer需要绘图时,会调用delegate的drawLayer:inContext:方法进行绘图。(这里要注意的是delegate不能指定为当前的View,因为它已经是子层的代理了,这里设置为其他的代理会出问题,具体操作参考http://www.cocoachina.com/industry/20140115/7703.html



本文出自 “11562149” 博客,请务必保留此出处http://11572149.blog.51cto.com/11562149/1783752

以上是关于CALayer的那些事的主要内容,如果未能解决你的问题,请参考以下文章

关于DevOps 的那些事

Kafka用Zookeeper所做的那些事

JS异步那些事 四(HTML 5 Web Workers)

Linux命令的那些事

一文搞懂PyTorch与CUDA那些事

有关HealthKit的那些事