他们说,有一个Stack可以保存图形状态。好吧,我不确定这个词是什么意思。 CGContextSaveGState是否保存我当前的绘图,还是保存了我当前的绘图设置,如颜色,线宽,字体大小等?
答案 0 :(得分:4)
CGContextSaveGState
documentation明确说明州内保存的内容。
每个图形上下文都维护着一堆图形状态。请注意,并非当前绘图环境的所有方面都是图形状态的元素。例如,当前路径不被视为图形状态的一部分,因此在调用CGContextSaveGState函数时不会保存。保存的图形状态参数为:
- CTM(当前转换矩阵)
- 剪辑区域
- 图像插值质量
- 线宽
- line join
- miter limit
- 线帽
- 行破折号
- 平坦度
- 应该反别名
- 渲染意图
- 填充色彩空间
- 描边颜色空间
- 填充颜色
- 描边颜色
- alpha值
- 字体
- 字体大小
- 字符间距
- 文字绘图模式
- 阴影参数
- 模式阶段
- 字体平滑参数
- 混合模式
所以不,你所做的绘图没有保存(虽然它也没有被清除)。而是保存了许多图形状态参数。然后,您可以通过调用CGContextRestoreGState
来恢复到您保存的状态。