1.Quartz2D是一个二维的绘图引擎,同时支持iOS和Mac OS
2.图形上下文(Graphics Context):是CGContextRef类型的数据。作用是:
- 保存绘图信息、绘图状态
- 决定绘制的输出目标(绘制到什么地方去) (输出目标可以是PDF文件)
3.过程:
- 绘制好图形——>保存——>通过图形上下文——>显示——>输出目标
4.在同一个绘图序列里,指定不同的图形上下文,可以将所绘制的图像绘制到不同的目标上。在Quartz2D里,提供了以下几种Graphics Context
- Bitmap Graphics Context
- PDF Graphics Context
- Window Graphics Context
- Layer Graphics Context
- Printer Graphics Context
5.如何利用Quartz2D绘制东西到UIView上?
- 首先,得有图形上下文,因为它能保存图形绘图信息,并且决定绘制到什么地方上
- 其次,图形上下文必须跟view相关联,才能将内容绘制到UIView上面
6.自定义UI控件的步骤:
- 新建一个类,继承于UIView
- 实现-(void)drawRect:(CGRect)rect 方法,然后在这个方法中,可以:
- 获取跟当前View相关联的图形上下文
- 绘制相应的图形内容。绘制时产生的线条,称为路径————由一个或者多个直线段或曲线段组成
- 利用图形上下文绘制的所有内容,渲染显示到view上
- 利用UIKit封装的绘图函数,直接绘图
7.BezierPath基础
- UIBezierPath对象,是对CGPathRef数据类型的封装,path如果是基于矢量图(面向对象图像或者是绘图图像,一系列由点连接起来的线)的,都用直线或者曲线去创建。
- 我们使用直线段去创建矩形和多边形,使用曲线段创建弧、圆或者其他复杂曲线形状
- 每一段都包括一个或者多个点
- 每一个直线段或者曲线段结束的地方,是下一个开始的地方
- 每一个连接的直线段或者曲线段的集合,称为subPath
- 一个UIBezierPath对象定义一个完整的路径,包括一个或者多个subPath
- 创建path对象和使用path对象的过程是分开的,创建path是第一步,包含了以下步骤:
- 创建一个path对象
- 使用moveToPoint:去设置初始线段的起点