Quartz2D 绘图主要步骤:
1. 获取【图形上下文】对象 —— (拿到草稿纸) |
2. 向【图形上下文】对象中添加【路径】 2.1 拼接路径(画内容) 2.2 添加路径到上下文(把内容放在草稿纸上)
|
3. 渲染 ——(把【图形上下文】中的图形绘制到对应的设备上)(根据草稿纸上的内容显示出来东西) |
关键方法:
1 // 获取上下文 2 CGContextRef ctx = UIGraphicsGetCurrentContext(); 3 4 // 创建可变路径(c) 5 CGMutablePathRef path = CGPathCreateMutable(); 6 7 // 把路径放在上下文当中 8 CGContextAddPath(ctx, path); 9 10 // 创建路径对象(oc)11 UIBezierPath* path = [UIBezierPath bezierPath];12 13 // 渲染14 CGContextStrokePath(ctx);
Quartz2D 绘图方式:
方式一:直接调用 Quartz2D 的 API 进行绘图 步骤: 1、获取绘图上下文 2、把图形绘制到绘图上下文上 3、把绘图上下文上的图形渲染到对应的设备上
|
方式二:调用 UIKit 框架封装好的 API 进行绘图(通过创建路径对象的方式来绘图)
- 代码相对简单
- 只对部分 Quartz2D 的 API 做了封装
- 对于没有封装的功能只能调用 Quartz2D 原生 API
- 相关类: CGPathRef 、 CGMutablePathRef
步骤: 1、先把图形缓存到"路径对象"中, 2、然后再把路径对象添加到上下文对象中 3、最后再把上下文对象渲染到对应的设备上 比如:画图片、文字到控件上。(UIKit 已经封装好了)
|
代码示例:
方法1:
1 #import “TDView.h" 2 3 @implementation TDView 4 - (void)drawRect:(CGRect)rect { 5 6 // 1.获取,当前的layer类型的,图形上下文 7 CGContextRef ctx = UIGraphicsGetCurrentContext(); 8 9 // 2.拼接路径,同时,把路径添加到上下文当中(下面代码是搞一条线段)10 CGContextMoveToPoint(ctx, 50, 50);11 CGContextAddLineToPoint(ctx, 100, 100);12 13 // 3.渲染(绘制路径)<把 上下文中的 路径 移动到 UIView 上>14 CGContextStrokePath(ctx); // StrokeXxxx 表示画线(边线)(空心图形)15 CGContextFillPath(ctx); // FillXxx 表示画填充的图形(实心图形)16 }17 @end
方法2:
1 - (void)test2 2 { 3 // 1.获取图形上下文(layer) 4 CGContextRef ctx = UIGraphicsGetCurrentContext(); 5 6 // 2.拼接路径 7 CGMutablePathRef path = CGPathCreateMutable(); 8 CGPathMoveToPoint(path, NULL, 50, 50); 9 CGPathAddLineToPoint(path, NULL, 100, 100);10 11 // 3.把路径添加到上下文当中12 CGContextAddPath(ctx, path);13 14 // 4.渲染15 CGContextStrokePath(ctx);16 }
如有疑问,请发送邮件至 shorfng@126.com 联系我。
By:蓝田(Loto)
原标题:1.1 Quartz 2D 绘图
关键词: