7

私は Quartz を理解しようとしており、あなたが利用しなければならないコンテキストを得ようとしています。コンテキストを作成する関数があるが、別の関数を同じコンテキストへの他の描画に呼び出す場合、最初のメソッドから次のメソッドにコンテキストを渡す必要がありますか? それともUIGraphicsGetCurrentContext()、まだ同じコンテキストに描画しているので、コンテキストを必要とする CG メソッドに使用できますか?

4

1 に答える 1

16

UIGraphicsGetCurrentContext()のドキュメントには次のように書かれています。

デフォルトでは、現在のグラフィックス コンテキストは nil です。ビュー オブジェクトは、その drawRect: メソッドを呼び出す前に、有効なコンテキストをスタックにプッシュして、現在のコンテキストにします。ただし、UIView オブジェクトを使用して描画を行っていない場合は、UIGraphicsPushContext(_:)関数を使用して手動で有効なコンテキストをスタックにプッシュする必要があります。

したがって、作成したコンテキストで呼び出した後UIGraphicsPushContext()、他のメソッドは でそのコンテキストにアクセスできますUIGraphicsGetCurrentContext()。drawRect: の外で呼び出しUIGraphicsGetCurrentContext()ていて、 でコンテキストを明示的に設定していないUIGraphicsPushContext()場合、現在のグラフィックス コンテキストは未定義であり、使用するのは安全ではありません。

于 2012-12-05T02:01:43.200 に答える