ios自定义layer

两种方式

 1 #import <QuartzCore/QuartzCore.h>
 2 
 3 @interface NJLayer : CALayer
 4 @end
 5 
 6 
 7 #import "NJLayer.h"
 8 
 9 @implementation NJLayer
10 
11 // 重写该方法, 在该方法中给layer上绘制图形
12 // 注意CALayer中的drawInContext方法, 不会自动调用
13 // 只能自己通过setNeedDisplay方法调用
14 - (void)drawInContext:(CGContextRef)ctx
15 {
16 
17     // 1.绘制图形
18     CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, 100, 100));
19     
20 //    [[UIColor redColor] set]; // 注意不能用UIKit框架中的类
21     
22     CGContextSetRGBFillColor(ctx, 1, 0, 0, 1);
23     // 1.渲染图形
24     CGContextFillPath(ctx);
25 }
26 
27 @end
 1 - (void)viewDidLoad
 2 {
 3     [super viewDidLoad];
 4 
 5     // 1.创建自定义Layer
 6     CALayer *myLayer = [CALayer layer];
 7     myLayer.bounds = CGRectMake(0, 0, 100, 100);
 8     myLayer.anchorPoint = CGPointZero;
 9     myLayer.backgroundColor = [UIColor greenColor].CGColor;
10     
11     myLayer.delegate = self;
12     
13     // 1.1手动调用CALayer中的SETNEEDDISPLAY方法绘制图片
14     [myLayer setNeedsDisplay];
15     
16     // 2.将自定义Layer添加到控制器的view的layer上
17     [self.view.layer addSublayer:myLayer];
18 }
19 
20 // 通过代理自定义layer
21 - (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
22 {
23     
24     // 1.绘制图形
25     CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, 50, 100));
26 
27     CGContextSetRGBFillColor(ctx, 1, 0, 0, 1);
28     // 1.渲染图形
29   

 

posted @ 2016-01-24 10:27  xiaocaoera  阅读(178)  评论(0编辑  收藏  举报