2012-01-16 13 views
0

Core GraphicsとCADisplayLinkを使用してアニメーションを作成しています。Core Graphicsの画像アニメーションが遅すぎる

すべてのCADisplayLinkループコールでイメージを現在のグラフィックスコンテキストに再描画します。 は、ここで私は、すべての呼び出しで画像を描画関数である:

- (void) drawImage { 

//img is some uiimage 
CGRect r = CGRectMake(0, 0, img.size.width, img.size.height); 
CGImageRef i = [img CGImage]; 
CGContextDrawImage(context, r, i); 



} 

問題は、アニメーションを遅くする実行されることであると私は最初から画像ビットマップを作成するたびに代わりに何らかの形でキャッシュしていますので、これがあると信じてそれ。ビットマップをキャッシュする方法はありますか?もしそうなら、どのように?

ありがとうございます。

答えて

0

多くのコードやプロファイラーの出力を見ることなく、なぜコードが遅いのかを確かめることは不可能です。ただし、画像を描画する代わりに、UIImageViewを使用してください。 CADisplayLinkがあなたに通知するたびに、画像ビューのフレームを変更するだけです。

+0

また、 '[UIImage imageNamed:...]'を使用すると画像がキャッシュされますが、他の方法ではキャッシュされない可能性があります。 – ikuramedia

+0

UIImageViewはオプションではないので、私はUIKitを使いたくないのです...私の問題は、上記のコードでは表示されていないコンテキストを拡大していることが原因で、リソースを占有しているようです。 CoreGraphicsだけでアニメーションの例を知っていますか? – Zigglzworth

関連する問題