IOS 之 Quartz 2D 绘图(上)
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 绘图(下)》。
推荐阅读
-
IOS开发教程第一季之UI进阶day6合并IOS学习017--绘图2
-
iOS开发之Quartz2D的介绍与使用详解
-
iOS进阶之xib上控件自动生成纯代码
-
iOS进阶之xib上控件自动生成纯代码
-
iOS开发之UITableView与UISearchController实现搜索及上拉加载,下拉刷新实例代码
-
iOS开发之UITableView与UISearchController实现搜索及上拉加载,下拉刷新实例代码
-
iOS开发中Quartz2D绘图路径的使用以及条纹效果的实现
-
iOS开发中使用Quartz2D绘图及自定义UIImageView控件
-
IOS开发(106)之Quartz和OpenGL绘图初窥
-
iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果