IOS如何在EAGLContext中绘制UIImage?

时间:2012-05-31 14:28:35

标签: ios uiimage draw eaglcontext

我正在做一个“手指绘图应用程序”。我正在使用Apple的例子[这里] [1]。

但我想添加撤消选项。为了做到这一点,我每次应用处理触摸事件的结束时都将EAGLContext内容保存到图像中。

当我想要绘制以下方法中保存的最后一张图像时,问题出现了:

-(void)undoButtonClicked {
if([savedImagesArray count]>0){
            UIImage *image = [savedImages lastObject];
            [savedImagesArray removeLastObject];
            [image drawInRect:self.frame];
}

}

但是没有绘制图像,并且有一个控制台输出显示:

 <Error>: CGContextRestoreGState: invalid context 0x0

我认为上下文有问题,但我似乎无法弄明白。

由于

1 个答案:

答案 0 :(得分:0)

在您调用它时,没有当前上下文。在调用drawRect:之前生成新的上下文,并在绘制周期结束时处理。当没有上下文时,你不能打电话给drawInRect:

视图不应该跟踪旧图像。这是一个控制器功能。单击撤消时,控制器应将正确的图像传递给视图,然后视图应在下次调用drawRect:时重绘。