UIImageView是否缓存图像



我可能会问别人问过的同样的问题(但它没有回应):
加速第一个UIImageView动画(强制缓存图像)

但是,我的问题是:
我在资源中有60张图片,在timeinterval循环中我会让这些图片动画,每次设置为UIImageView。image the n'th image from resource .

问题是:第一个动画是坏的!当我在同一个UIImageView中再次循环所有图像时,动画是完美的。我们能在UIImageView中预缓存图像吗?

编辑:或者也许我们可以做一些技巧,使动画平滑?

方法[UIImage imageNamed:@""]缓存图像。UIImageView不会。我在一个有很多图像的应用程序中遇到了一个问题,由于内存不足而崩溃。如果我更改为[UIImage imageWithContentsOfFile:@""],不缓存图像。

要预缓存图像,您可以简单地在init方法中为所有需要的图像调用[UIImage imageNamed:@""]。但是如果你收到一个内存警告图像会被释放

UIImageView不缓存图像,作为[UIImage imageNamed:@""]。不幸的是,如果您有很多图像,imageNamed将使您的应用程序崩溃,因为它耗尽了内存。

你可以使用[UIImage imageWithContensOfFile:@""]在NSArray中预加载所有的图像。一旦你有了数组,你就可以做你想做的了!

不,UIImageView不缓存图像。image属性声明为retain,所以当你设置新图像时,imageView发送release消息给旧图像,retain消息给新图像。

动画UIImageView最简单的方法是将图像数组设置为属性animationImages并调用startAnimating方法

imageView.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"], ..., nil];
imageView.animationDuration = 2.0f;
[imageView startAnimating];

最新更新