UIBezierを持っていて、drawRectを使用してビューに描画すると、ベジェは一種の揮発性であることがわかります。つまり、実際にはどこにも描画されていません。代わりに、そのビューに表示されるものに対応する一種のバッファーに書き込まれたようなものです。つまり、[self setNeedsDisplay]を使用してdrawRectを再度呼び出すと、ベジェがなくなり、他のものを書き込むことができます。
一方、CGContextにlikeを描くと
CGContextStrokePath(ctx);
私は実際にそのコンテキストに行を書き込んでいますが、それを消去する方法はありません。同じメソッドを再度呼び出すと、すでに1本の線が描画されているコンテキストに上書きされます。
しかし、UIBezierコマンドを使用してCGContextに書き込むとどうなりますか?
つまり、私が次のようなことをすると
UIGraphicsPushContext(ctx);
CGContextSaveGState(ctx);
CGContextTranslateCTM(ctx, 0, height);
CGContextScaleCTM(ctx, 1.0, -1.0);
[myBezier stroke];
CGContextRestoreGState(ctx);
UIGraphicsPopContext();
この行は永続的にctxに書き込まれますか、それとも以前のように揮発性ですか?ドキュメントにはそれに関する情報が含まれておらず、いつものようにあいまいです。
ありがとう