也許我會問這問了其他人同樣的問題(但它沒有響應):
Speed up first UIImageView animation (force cache the images)
但是,我的短期問題是:
我有資源60張圖片,在一個時間間隔循環我'm要爲該圖像設置動畫,每次設置爲UIImageView.image第圖片來自資源。
問題是:第一個動畫不好!當我在同一個UIImageView中再次循環所有圖像時,動畫是完美的。我們可以預先在UIImageView中緩存圖像嗎?
編輯:或者,也許我們可以做一些技巧,使動畫順利?是否UIImageView緩存圖像?
回答
方法 [UIImage imageNamed:@""]
高速緩存中的圖像。 UIImageView不。由於內存不足,我的應用程序出現大量圖像崩潰的問題。 修復如果我更改爲[UIImage imageWithContentsOfFile:@""]
不緩存圖像。
要預先緩存圖像,您只需在init方法中調用[UIImage imageNamed:@""]
來獲取所需的所有圖像。但是,如果您收到內存警告圖像將被釋放。
不,UIImageView不會緩存圖像。 image
屬性聲明爲保留,所以當你設置新的圖像,然後imageView發送release
消息到舊圖像和retain
到新的。
動畫的UIImageView最簡單的方法是將圖像的陣列設置爲屬性animationImages
並調用startAnimating方法
imageView.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"], ..., nil];
imageView.animationDuration = 2.0f;
[imageView startAnimating];
但是,你有沒有試過使用UIImageView.animationImages動畫100張圖像,每張圖像都是850x535大小?我試過了,應用程序因爲內存而崩潰。我認爲的原因是,因爲animationImages包含所有圖像,這些圖像很多。或者,我說錯了什麼?如果是這樣,請糾正我。 Thx –
是的,我想你完全正確。這種方式最簡單,但效率不高,如你所見。 – beryllium
你認爲,我應該使用一些圖形庫來播放大圖像,保持性能良好嗎?你知道任何? Thx –
UIImageView不緩存圖像,因爲[UIImage imageNamed:@""]
。不幸的是,如果你有很多圖像,imageNamed會使應用程序崩潰,因爲它的內存不足。
您可以使用[UIImage imageWithContensOfFile:@""]
預加載NSArray中的所有圖像。 一旦你有了陣列,你就可以做你想做的!
我認爲這很奇怪!.. NSArray還會保留圖像內部的記憶,以及imageNamed緩存的圖像。要麼? –
- 1. 是否UIImage緩存圖像?
- 2. IE緩存是否找不到圖像?
- 3. AFNetworking檢查圖像是否緩存
- 4. BLOB與否 - 緩存圖像
- 5. 識別UIImageView上是否有圖像
- 6. 畢加索圖書館是否將圖像保存到緩存?
- 7. 是JQuery緩存圖像?
- 8. UIImageView + AFNetworking和保存圖像
- 9. UIImageView顯示UIImageView圖像UIImageView
- 10. AVPlayerLayer獲取圖像到UIImageView緩衝區
- 11. 圖像緩存
- 12. 緩存圖像
- 13. 緩存圖像
- 14. 節點/快速服務圖像是否存在;緩存問題
- 15. AFNetworking的UIImageView類別的預緩存圖像
- 16. 將圖像加載到緩存中並顯示到UIImageView中
- 17. Glide:如何查找圖像是否已被緩存並使用緩存版本?
- 18. 圖像緩存表
- 19. Apache緩存圖像
- 20. JWPlayer緩存圖像
- 21. base64圖像緩存?
- 22. Django:緩存圖像
- 23. 圖像緩存8.1
- 24. iPhone圖像緩存
- 25. UIImageView緩存策略-AFNewtorking
- 26. Cookie是否緩存?
- 27. 圖像視圖 - 是否有可能設置UIImageView dynamicaly的位置?
- 28. 是否有可能從UIImageView的圖像是使用AFNetworking
- 29. JxBrowser - 保存緩存圖像
- 30. 存儲緩存圖像
也許,但我們在談論UIImageView,而不是UIImage – beryllium
對不起。修復了答案。 –
是的!在使用'imageNamed'分析應用程序的過程中,我的應用程序佔用了120MB的內存,使用'imageWithContentsOfFile'時的內存爲15MB。但不幸的是,它並沒有解決不好的動畫問題( –