IOS中drawLayer使用CGContent

Posted

tags:

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

一般我们使用CALayer的时候如何想要在CALayer上面绘图有两种方式:

1:新建一个类 继承自CALayer,然后重写他的一个方法:

13 -(void)drawInContext:(CGContextRef)ctx
14 {
15     //1.绘制图形
16     //画一个圆
17     CGContextAddEllipseInRect(ctx, CGRectMake(50, 50, 100, 100));
18     //设置属性(颜色)
19 //    [[UIColor yellowColor]set];
20     CGContextSetRGBFillColor(ctx, 0, 0, 1, 1);
21     
22     //2.渲染
23     CGContextFillPath(ctx);
24 }
然后新建该类的实例后 调用setNeedsDisplay即可以调用到drawInContext方法,

2:使用CALayer的委托方法,首先继承calayer的委托,实现他的一个方法:
36 -(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
37 {
38     //1.绘制图形
39     //画一个圆
40     CGContextAddEllipseInRect(ctx, CGRectMake(50, 50, 100, 100));
41     //设置属性(颜色)
42     //    [[UIColor yellowColor]set];
43     CGContextSetRGBFillColor(ctx, 0, 0, 1, 1);
44     
45     //2.渲染
46     CGContextFillPath(ctx);
47 }
然后设置layer.delegate = self后,自然会调用该方法的

以上是关于IOS中drawLayer使用CGContent的主要内容,如果未能解决你的问题,请参考以下文章

iOS:使用 UIView 的 'drawRect:' 与其层的委托 'drawLayer:inContext:'

CALayer委托方法drawLayer没有被调用

CALayer 没有实现自定义 drawLayer:inContext: 方法

CATiledLayer drawLayer:inContext:在检索要绘制的图像时释放视图时崩溃

iOS之CATiledLayer的属性简介和使用

vImageAlphaBlend 崩溃