【发布时间】:2013-04-09 16:43:07
【问题描述】:
我在 Quartz 2D 编程指南中找到了这个:
要在 iOS 应用程序中绘制到屏幕上,您需要设置一个 UIView 对象并实现它的 drawRect: 方法来执行绘制。当视图在屏幕上可见并且其内容需要更新时,将调用视图的 drawRect: 方法。在调用您的自定义 drawRect: 方法之前,视图对象会自动配置其绘图环境,以便您的代码可以立即开始绘图。作为此配置的一部分,UIView 对象为当前绘图环境创建图形上下文(CGContextRef 不透明类型)。您可以通过调用 UIKit 函数 UIGraphicsGetCurrentContext 在 drawRect: 方法中获取此图形上下文。
由于我遇到了无效上下文的问题(因为当我返回重新绘制时它是 0x00),我想知道是否可以在 -drawRect 的开头获取当前上下文,并且不知何故将它传递给我从 -drawRect 中调用的方法?
【问题讨论】:
-
我也在下面回答,但只是想检查一下:你不是直接打电话给
drawRect,对吧? UIKit 仅在需要时调用它。如果你想更新你的视图,你应该打电话给setNeedsDisplay。
标签: ios objective-c uigraphicscontext