理解UIGraphicsGetCurrentContext()

时间:2011-09-23 19:42:51

标签: iphone quartz-graphics

我正在尝试理解Quartz并获得您必须使用的上下文。如果我有一个函数,我创建一个上下文,但后来我调用另一个函数到其他绘图到同一个上下文,我是否需要将上下文从第一个方法传递到下一个?或者我可以将UIGraphicsGetCurrentContext()用于需要上下文的任何CG方法,因为我仍然在绘制相同的上下文?

1 个答案:

答案 0 :(得分:13)

docs for UIGraphicsGetCurrentContext()说:

  

默认情况下,当前图形上下文为零。在致电之前   drawRect:方法,视图对象将有效的上下文推送到堆栈上,   使它成为现实。如果你没有使用UIView对象来做你的   但是,必须将有效的上下文推送到堆栈中   手动使用UIGraphicsPushContext函数。

因此,在使用您创建的上下文调用UIGraphicsPushContext()之后,您的其他方法可以使用UIGraphicsGetCurrentContext()访问该上下文。如果您在drawRect:之外调用UIGraphicsGetCurrentContext()并且未使用UIGraphicsPushContext()显式设置上下文,则当前图形上下文未定义 - 当然不能安全使用。