2012-01-16 70 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 2012-01-16 21:11:51

+0

我不想使用UIKit,所以UIImageView不是一個選項在這裏...我的問題似乎是我縮放上下文(未在上面的代碼中顯示),並佔用資源。你知道任何只有CoreGraphics的動畫例子嗎? – Zigglzworth 2012-01-17 13:48:31