我正在做一个“手指绘图应用程序”。我在这里使用的是苹果的例子。
但我想添加一个撤消选项。为了做到这一点,每当应用程序处理触摸事件的结束时,我都会将EAGLContext内容保存到图像中。
当我想要绘制在folowing方法中保存的最后一个图像时,问题来了:
-(void)undoButtonClicked {
if([savedImagesArray count]>0){
UIImage *image = [savedImages lastObject];
[savedImagesArray removeLastObject];
[image drawInRect:self.frame];
}}
但是图像并未绘制,并且控制台输出显示:
<Error>: CGContextRestoreGState: invalid context 0x0我认为这是上下文的错误,但我似乎无法弄清楚。
谢谢
发布于 2012-05-31 22:47:05
在你调用它的时候,没有当前的上下文。在调用drawRect:之前会生成一个新的上下文,并在绘制周期结束时将其释放。不能在没有上下文的情况下调用drawInRect:。
视图不应该跟踪旧图像。这是一个控制器函数。单击undo时,控制器应将正确的图像传递给视图,视图应在下次调用drawRect:时重新绘制自身。
https://stackoverflow.com/questions/10835611
复制相似问题