是否有任何替代使用UIImageView动画化图像数组?

时间:2016-11-16 11:50:17

标签: ios animation uiimageview

UIImageViewanimationImages用于制作动画序列的图像。这很好。但它拥有图像对象。因此,当这个动画发生时,内存的使用会出现峰值。我尝试NSTimer来设置该图片视图的图片属性,但它不起作用。

我们能用其他任何方法实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

不要寻找替代方案,只需尝试纠正现有代码。

animationImages分配图片的最佳做法应该是使用initWithContentsOfFile代替imageNamed:

imageNamed:它会缓存您的图像,并且您无法控制内存 - 无法保证释放对象实际上会释放图像,但在缓存时会提供更快的图像加载速度

imageWithContentsOfFile:它不缓存图像并且更加内存友好,但因为它不缓存图像而且较重的图像加载速度要慢得多。

当动画停止时,只需释放图像采集阵列即可。如果您使用ARC,则将图像集合数组设为nil。

最佳实践:

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;