我正在尝试理解Quartz并获得您必须使用的上下文。如果我有一个函数,我创建一个上下文,但后来我调用另一个函数到其他绘图到同一个上下文,我是否需要将上下文从第一个方法传递到下一个?或者我可以将UIGraphicsGetCurrentContext()用于需要上下文的任何CG方法,因为我仍然在绘制相同的上下文?
答案 0 :(得分:13)
docs for UIGraphicsGetCurrentContext()说:
默认情况下,当前图形上下文为零。在致电之前 drawRect:方法,视图对象将有效的上下文推送到堆栈上, 使它成为现实。如果你没有使用UIView对象来做你的 但是,必须将有效的上下文推送到堆栈中 手动使用UIGraphicsPushContext函数。
因此,在使用您创建的上下文调用UIGraphicsPushContext()之后,您的其他方法可以使用UIGraphicsGetCurrentContext()访问该上下文。如果您在drawRect:之外调用UIGraphicsGetCurrentContext()并且未使用UIGraphicsPushContext()显式设置上下文,则当前图形上下文未定义 - 当然不能安全使用。