0

CGLayer将来、高速描画 のためにいくつかのグラフィックスを事前にレンダリングしたいと考えています。

パラメータがCGLayerCreateWithContext必要であることがわかりました。CGContextメソッドで簡単に見つけることができますdrawRect:。しかし、私はのCGLayer外側を作成する必要がありますdrawRect:。どこで入手すればよいCGContextですか?

単に一時的に作成CGBitmapContextして使用する必要がありますか?

更新: drawRect の外で CGLayer を作成する必要があります: レンダリングする前に CGLayer を初期化したいからです。最初の drawRect 呼び出しで一度初期化することは可能ですが、私にとっては美しい解決策ではありません。

4

2 に答える 2

0

外部で行う理由はなくdrawRect:、実際、内部で行うことにはいくつかの利点があります。たとえば、ビューのサイズを変更しても、レイヤーは正しいサイズで作成されます (任意のサイズではなく、ビューのグラフィックス コンテキストに基づいていると仮定します)。これは一般的な方法であり、外部で作成するメリットはないと思います。いずれにせよ、CPU サイクルの大部分が費やされCGContextDrawLayerます。

于 2012-06-27T06:53:41.973 に答える