本章先来介绍一下iOS绘图中概念方面的一些东西,方便理解后面的知识。
这章的内容有:
- Quartz2D
- 图形上下文
Quartz2D:
- Quartz2D是一个二维绘图引擎
- 纯C语言的,跨平台的,支持iOS和Mac OS X系统
- 包含在Core Graphics框架中
扩展:
- 在iOS中,一般一个框架里面的对象或方法都是以这个框架的英文名的首字母作为前缀。如:MapKit框架以MK开头,MKMapView,UIKit框架以UI开头,UIView,Core Graphics框架以CG开头,CGRect
- Core Graphics框架是纯C语言的,如熟悉的CGRect等。C语言有可跨平台的优点。
图形上下文
- 图形上下文是Core Graphics框架中一个CGContextRef类型的数据。
- 图形上下文包括以下信息:
- 绘图路径:要绘制的各种各样的图形,圆、直线、矩形等等。
- 绘图状态:颜色、线宽、旋转、缩放、平移、图片裁剪区域等
- 输出目标:绘制到什么地方去, UIView、图片等。
提示:
- 把图形上下文当作一张草稿纸,要把图形绘制出来,首先把绘图路径画到草稿纸(图形上下文)上面-->把草稿纸(图形上下文)里面的绘图路径渲染到要显示的输出目标(UIView、图片等)上面
- 图形上下文有以下几种类型:
常用的就是layer类型和图片类型的上下文
- Layer Graphics Context:layer类型的上下文,跟UI控件有关。
- Bitmap Graphics Context:图片类型的上下文,跟画出一张图片有关。
- Window Graphics Context:跟 Mac电脑的窗口有关。
- PDF Graphics Context:跟PDF有关。
- Printer Graphics Context:跟打印机有关。
提示:
- 什么类型的上下文,决定什么类型的输出目标。比如:图片类型的上下文里面的绘图路径不能渲染到UIView中。图片类型的上下文里面的绘图路径只能渲染到图片(UIImage)中。同样的,layer类型的上下文里面的绘图路径只能渲染到UIView中。