这一篇是关于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)
时间: 2024-10-09 21:50:44