UIGraphicsPopContext()的问题......?

Nem*_*sII 2 iphone ios4

我花了整整一夜来解决这个问题,但我还是很生气

这里有关于我的代码的图片:http: //i284.photobucket.com/albums/ll15/hisinhvien/Screenshot2011-03-03at112716PM.png (抱歉b/s新用户无法发布图片)

首先,我覆盖了我的"@interface组件:UIView"的"drawRect"然后我把一些代码放入其中来测试推送和弹出图形上下文但它没有按照图片工作:第一次我选择了绿色然后我推动了上下文并选择了蓝色然后绘制了一个矩形,然后我将上下文弹出,但最后一个矩形仍然是蓝色......?

这是我的源代码:http://www.mediafire.com/ ?aakgqw92flc808o这很简单但出错... @@

zrz*_*zka 5

使用CGContextSaveGStateCGContextRestoreGState.

关于保存内容的文档引用:

讨论

每个图形上下文都维护着一堆图形状态.请注意,并非当前绘图环境的所有方面都是图形状态的元素.例如,当前路径不被视为图形状态的一部分,因此在调用CGContextSaveGState函数时不会保存.保存的图形状态参数是:

  • CTM(当前转换矩阵)
  • 剪辑区域
  • 图像插值质量
  • 行宽
  • 线连接
  • 斜角限制
  • 线帽
  • 线破折号
  • 平整度
  • 应该反别名
  • 渲染意图
  • 填充色彩空间
  • 笔触颜色空间
  • 填色
  • 笔触颜色
  • alpha值
  • 字形
  • 字体大小
  • 字符间距
  • 文字绘图模式
  • 阴影参数
  • 模式阶段
  • 字体平滑参数
  • 混合模式

在drawRect:方法的开头保存状态并在drawRect:方法结束时调用恢复也是一件好事.你不是在这里创建自己的上下文,你只是使用已经创建的上下文,你应该保留它的状态.换句话说,使用它,但最后保持它处于相同的状态.