当前位置: 移动技术网 > 移动技术>移动开发>IOS > IOS 之 Quartz 2D 绘图(上)

IOS 之 Quartz 2D 绘图(上)

2018年12月29日  | 移动技术网移动技术  | 我要评论

quartz 2d 是一个二维绘图引擎,同时支持 ios 和 mac 。其 api 采用 c 语言编写,来自 core graphics 框架,主要作用是绘图,可以绘制三角形、四边形、图片和文字等。下面就 quartz 2d 的相关概念做简要解释并以实例分析。

1.图形上下文(graphics context)
所谓graphics context,其实就是表示了一个绘制目标,也就是你打算绘制的地方,它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息。graphics context定义了基本的绘制属性,如颜色、裁减区域、线条宽度和样式信息、字体信息、混合模式等.

2.drawrect:方法
实现 drawrect: 方法才能绘图到 view 上,因为在 drawrect: 方法中才能取得跟 view 相关联的图形上下文。在drawrect:方法中取得上下文后,就可以绘制东西到view上。

3.图形上下文栈
在获取图形上下文之后,通过 cgcontextsavegstate(ctx); 方法,把当前获取的上下文拷贝一份,保存一份最纯洁的图形上下文。
在画第二条线之前,使用cgcontextrestoregstate(ctx);方法,还原开始的时候保存的那份最纯洁的图形上下文。
在栈里保存了几次,那么就可以取几次(比如不能保存了1次,取两次,在取第二次的时候,栈里为空会直接挂掉)。

4.利用quartz2d绘制东西到view上(步骤)
注:此处主要针对uiview的graphics context进行绘制
(1)新建一个类,继承自uiview;
(2)实现- (void)drawrect:(cgrect)rect方法;
(3)在这个方法中取得跟当前view相关联的图形上下文;
(4)绘制相应的图形内容;
(5)利用图形上下文将绘制的所有内容渲染显示到view上面。

以画线段为例对上面所述内容进行代码详解(drawline为继承自 uiview 的类):
这里写图片描述

图形上下文栈的代码及运行结果图解:
这里写图片描述ios 之 quartz 2d 绘图(下)》。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网