图形上下文(Graphics Contexts)
图形上下文表示一个绘图目的地。它包含绘图参数和绘图系统执行任何后续绘图命令所需的所有设备特定信息。图形上下文定义了基本的绘图属性,例如绘图时使用的颜色,剪裁区域,线宽和样式信息,字体信息,合成选项等等。
您可以使用Quartz上下文创建函数或者使用Mac OS X框架或iOS中的UIKit框架提供的更高层次的函数来获取图形上下文。Quartz提供各种风格的Quartz图形上下文的功能,包括位图和PDF,您可以使用它来创建自定义内容。
在iOS中绘制到视图图形上下文
要在iOS应用程序中绘制到屏幕,需要设置一个UIView
对象并实现其drawRect:
方法来执行绘制。视图的drawRect:
方法在视图在屏幕上可见以及其内容需要更新时调用。在调用您的自定义drawRect:
方法之前,视图对象会自动配置其绘图环境,以便您的代码可以立即开始绘制。作为此配置的一部分,UIView
对象为当前绘图环境创建图形上下文(CGContextRef
不透明类型)。您可以通过调用UIKit函数UIGraphicsGetCurrentContext
在drawRect:
方法中获得此图形上下文。
UIKit中使用的默认坐标系与Quartz使用的坐标系不同。在UIKit中,原点位于左上角,y轴正值指向下方。UIView对象通过将原点转换到视图的左上角来修改Quartz图形上下文的CTM以匹配UIKit约定,并通过将y轴乘以-1来反转y轴。