CGContextSaveGState和CGContextRestoreGState的目的是什么?

pro*_*ock 19 core-graphics

我看到他们使用的大量示例代码CGContextSaveGStateCGContextRestoreGState.为什么我需要保存上下文的状态?

Pet*_*sey 21

为了以后恢复它.

关于上下文,您可以更改的一些内容很难(例如,CTM)或不可能(例如,剪切路径)进行更改.保存gstate可以通过恢复gstate来撤消这些更改.

Quartz 2D Programming Guide告诉所有人.

  • 哦,这是正在恢复的状态,而不是整个绘图.这清除了一切.(即,我画的东西会保留,但我对CTM的更改将会恢复.) (4认同)