7

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

4

1 回答 1

16

UIGraphicsGetCurrentContext()的文档说:

当前图形上下文默认为 nil。在调用它的 drawRect: 方法之前,视图对象将一个有效的上下文压入堆栈,使其成为当前的。UIGraphicsPushContext(_:)但是,如果您不使用 UIView 对象进行绘图,则必须使用该函数手动将有效上下文推送到堆栈上。

因此,在UIGraphicsPushContext()使用您创建的上下文调用之后,您的其他方法可以使用UIGraphicsGetCurrentContext(). 如果您在UIGraphicsGetCurrentContext()drawRect: 之外调用并且没有使用 显式设置上下文UIGraphicsPushContext(),则当前的图形上下文是未定义的——当然使用起来也不安全。

于 2012-12-05T02:01:43.200 回答