ios自定义layer

本文详细介绍如何通过自定义CALayer来实现绘图功能。包括导入QuartzCore框架,创建并设置自定义Layer属性,以及重写drawInContext方法进行图形绘制。同时,介绍了如何通过setNeedDisplay方法触发绘图,并将自定义Layer添加到UIView上。
摘要由CSDN通过智能技术生成

两种方式

 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   

 

转载于:https://www.cnblogs.com/PJHome/p/5154769.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值