0
UIImageView
具有animationImages
用於動畫化圖像序列。這工作正常。但它擁有圖像對象。所以當這個動畫發生的時候,內存的使用會激增。我試圖NSTimer
設置圖像視圖的圖像屬性,但它不起作用。是否有任何替代動畫使用UIImageView圖像數組?
我們可以通過其他方法實現嗎?
UIImageView
具有animationImages
用於動畫化圖像序列。這工作正常。但它擁有圖像對象。所以當這個動畫發生的時候,內存的使用會激增。我試圖NSTimer
設置圖像視圖的圖像屬性,但它不起作用。是否有任何替代動畫使用UIImageView圖像數組?
我們可以通過其他方法實現嗎?
而不是尋找替代品,只是嘗試糾正現有的代碼。
爲animationImages
分配映像的最佳做法應該是用的initWithContentsOfFile
代替imageNamed:
imageNamed:
它緩存的圖像和你失去了記憶控制 - 有沒有保證釋放對象實際上會釋放圖像,但在緩存時第二次提供更快的圖像加載速度。
imageWithContentsOfFile:
它不會緩存圖像,並且對內存更友好,但它不會緩存圖像,而較重的圖像加載速度較慢。
當動畫停止時,只需釋放圖像集合數組。如果您使用的是ARC,那麼將它的圖像集合數組設置爲零。
最佳實踐:
for(int itemIndex = 0; itemIndex < 20; itemIndex++) {
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myImage1" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
[imageArray addObject:image];
}
動畫後:
imageArray = nil;
可以繪製圖像彼此使用CoreGraphics中和CADisplayLink後。 –