我试图理解 Quartz 并获得你必须利用的上下文。如果我有一个创建上下文的函数,然后我将另一个函数调用到其他绘图到相同的上下文,我是否需要将上下文从第一个方法传递给下一个方法?或者我可以只使用UIGraphicsGetCurrentContext()
任何需要上下文的 CG 方法,因为我仍在绘制相同的上下文?
问问题
7946 次
1 回答
16
UIGraphicsGetCurrentContext()的文档说:
当前图形上下文默认为 nil。在调用它的 drawRect: 方法之前,视图对象将一个有效的上下文压入堆栈,使其成为当前的。
UIGraphicsPushContext(_:)
但是,如果您不使用 UIView 对象进行绘图,则必须使用该函数手动将有效上下文推送到堆栈上。
因此,在UIGraphicsPushContext()
使用您创建的上下文调用之后,您的其他方法可以使用UIGraphicsGetCurrentContext()
. 如果您在UIGraphicsGetCurrentContext()
drawRect: 之外调用并且没有使用 显式设置上下文UIGraphicsPushContext()
,则当前的图形上下文是未定义的——当然使用起来也不安全。
于 2012-12-05T02:01:43.200 回答