0

「指絵アプリ」をやっています。私はAppleの例[ここ][1]を使用しています。

しかし、元に戻すオプションを追加したいと思います。これを行うために、アプリがタッチイベントの終了を処理するたびに、EAGLContextコンテンツを画像に保存しています。

次の方法で保存された最後の画像を描画したい場合に問題が発生します。

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

}

ただし、画像は描画されず、次のようなコンソール出力があります。

 <Error>: CGContextRestoreGState: invalid context 0x0

文脈に問題があると思いますが、理解できないようです。

ありがとう

4

1 に答える 1

0

あなたがそれを呼んでいる時点では、現在の文脈はありません。を呼び出す前に新しいコンテキストが生成されdrawRect:、描画サイクルの最後に破棄されます。drawInRect:コンテキストがない場合は呼び出すことができません。

ビューは古い画像を追跡するべきではありません。それがコントローラー機能です。[元に戻す]をクリックすると、コントローラーは正しい画像をビューに渡し、次にdrawRect:呼び出されたときにビューが再描画する必要があります。

于 2012-05-31T14:47:04.840 に答える