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

标签 iphone ios4

我花了整个晚上来解决这个问题,但我仍然对此很生气

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

首先,我重写了“@interface Component : UIView”的“drawRect”,然后我在其中放入了一些代码来测试推送和弹出图形上下文,但它不起作用 按照图片所示:首先我选择了绿色,然后我推送了上下文并选择了蓝色,然后绘制了一个矩形,之后我将上下文弹出,但最后一个矩形仍然是蓝色...?

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

最佳答案

使用CGContextSaveGStateCGContextRestoreGState .

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

讨论

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

  • CTM(当前变换矩阵)
  • 剪辑区域
  • 图像插值质量
  • 线宽
  • 线路连接
  • 斜接限制
  • 线帽
  • 虚线
  • 平整度
  • 应该抗锯齿
  • 渲染意图
  • 填充色彩空间
  • 描边颜色空间
  • 填充颜色
  • 描边颜色
  • 阿尔法值
  • 字体
  • 字体大小
  • 字符间距
  • 文本绘制模式
  • 阴影参数
  • 模式阶段
  • 字体平滑参数
  • 混合模式

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

关于iphone - UIGraphicsPopContext() 的问题...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191382/

相关文章:

iphone - 需要对应用程序的文档文件夹中的图像进行延迟表图像加载

iphone - performSelector 在所有实例上进入方法,但只有一个线程完成

ios - 如何在 iOS 中以编程方式更新标签?

iOS Core Data - 可以通过代码包含 coredata 框架吗?

iphone - 将对象添加到可变数组

php - 在 native iPhone Phonegap 应用程序上使用 jQuery .ajax() 或 .post() 提交表单?

iphone - ASIFormDataRequest "_OBJC_CLASS_$_ASIFormDataRequest"中的错误,引用自 :

iphone - 不使用 superview alpha 值更新 subview

core-data - 如何暂停 NSFetchedResultsController 的工作?

ios - 如何在 Swift iOS 应用程序中隐藏状态栏?