1.概述
- Quartz2D是一个二维绘图引擎,同时支持IOS和Mac系统
- Quartz2D功能概述:
- 绘制图形:线条、三角形、矩形、圆、弧等
- 绘制文字
- 绘制/生成图片(图像)
- 读取/生成PDF
- 截图/裁剪图片
- 自定义UI控件
- Quartz2D的API是纯C语言的,来自Core Graphics框架
- 数据类型和函数基本都是以CG作为前缀的
2.为什么要使用Quartz2D
- IOS提供了UIKit框架,里面有各种各样的UI控件,便于开发者方便的搭建美观的UI界面
- 利用UIKit提供的控件,能够搭建和实现一些简单的、常见的UI界面
- 但是,有些时候我们需要搭建的UI界面极其复杂、而且需要一些个性化的功能,而系统提供的UI控件无法满足我们的需求,这时可以利用Quartz2D技术将内部的结构画出来,自定义我们需要的控件
3.图形上下文(Graphics Context)
- 要想利用Quartz2D绘图,必须知道对象的图形上下文
图形上下文是CGContextRef类型的数据,作用:
- 保存绘图信息、绘图状态等
- 决定绘制的输出目标(绘制到什么地方上去)
- 相同的一套绘图序列,指定不同的图形上下文,就可以将相同的图像绘制到不同的目标上
图形上下文类型
- Bitmap图形上下文
- PDF图形上下文
- Window图形上下文
- Layer图形上下文
- Printer图形上下文
4.利用Quartz2D自定义View(自定义UI控件)
- 新建一个类,继承自UIView
- 实现-(void)drawRect:(CGRect)rect方法,然后在在此方法中
- 取得跟当前View相关联的上下文
- 绘制相应的图形内容
- 利用图形上下文将绘制的内容渲染显示到View上面