2013-04-04 105 views
0

我在動畫ImageViews,然後用戶點擊一個按鈕。我有超過40個 圖像。我用的代碼是動畫imageview第一次需要時間

arr3 = [[NSArray alloc]initWithObjects:[UIImage imageNamed:@"Aperture_00000.png"], 
[UIImage imageNamed:@"Aperture_00001.png"], 
[UIImage imageNamed:@"Aperture_00002.png"], 
... 
[UIImage imageNamed:@"Aperture_00023.png"], nil]; 

imgv.animationImages = arr3; 
imgv.animationDuration=2.0f; 
imgv.animationRepeatCount =1; 

啓動動畫的方法是:

-(void)animate { 
    [imgv startAnimating]; 
} 

但它需要大量的時間,當用戶按下首次按鈕。有什麼可以解決這個問題的?

+0

什麼原因給一個[UIImage命名:]塊1.png,2.png ..? – satheeshwaran 2013-04-04 11:38:54

+0

加載所有圖像需要很長時間,也需要大量內存來加載這些圖像。當視圖加載時,您可以將圖像加載到數組中。這將加快加載時間。 – rckoenes 2013-04-04 11:38:57

+0

我已經在viewdidload本身中使用了數組 – Purva 2013-04-04 11:45:07

回答

1

原因是下面的代碼:

arr3 = [[NSArray alloc]initWithObjects:[UIImage imageNamed:@"Aperture_00000"],[UIImage imageNamed:@"Aperture_00001"],[UIImage imageNamed:@"1.png",@"2.png",@"3png",@"4.png",@"5.png",@"6.png",@"7.png",@"8.png",@"9.png",@"10.png",@"11.png",@"12.png",@"13.png",@"14.png",@"15.png",]; 

你可以做的是別的地方加載該陣列。

注意:這是一種非常消耗內存的加載圖像的方式。您訪問此課程2-3次後,您的應用肯定會崩潰。而不是這個使用一些替代品。我可以建議的最簡單的選擇是在UIImageView上加載圖像並定期更改圖像。它會給你動畫效果。

1

我建議你寧願以編程的方式來做,你應該從圖像創建動畫gif圖像。這裏是在線工具,你可以設置速度等參數 http://picasion.com/

,並使用 https://github.com/arturogutierrez/Animated-GIF-iPhone 類的UIImageView在這種情況下,以顯示GIF圖片您可以保存CPU時間。

當您想要播放動畫時隱藏imageView並在想要停止時隱藏。

我建議至少試一試。

+0

感謝您的回覆,但是如何保存圖像並從主包 – Purva 2013-04-04 12:53:50

+0

中顯示出來,然後將其添加到您的項目並打開項目設置(目標)> BuildPhases>複製Bundle資源,在那裏你可以添加.gif文件到你的主包和代碼中,你應該使用 .gif來訪問它 – 2013-04-04 13:00:21

+0

我創建了一個動畫PNG,但是當我嘗試保存圖像時,它不是動畫圖像?完全卡在這裏 – Purva 2013-04-04 13:48:32

相關問題