我有一个UIImageView,可根据级别更改图片。但是,每次更改它时,都会保留最后一张图像,并且内存使用率会不断上升。我认为imageView将图像堆叠在另一个之上。我尝试过在设置新图像之前设置self.imageView.image = nil,但这似乎不起作用。如何正确执行此操作?

if (level == 1) {
    self.imageView.image = [UIImage imageNamed:@"1"];

} else if (level == 2) {
    self.imageView.image = [UIImage imageNamed:@"2"];

} else if (level == 3) {
    self.imageView.image = [UIImage imageNamed:@"3"];

最佳答案

如果您有只显示一次的图像文件,并希望
确保不将其添加到系统的缓存中,您应该
而是使用imageWithContentsOfFile:创建图像。这将
将一次性图像保留在系统图像缓存之外
改善应用程序的内存使用特性。

在这里阅读:UIImage Documentation

结论,使用imageNamed将图像添加到缓存中可能最终会增加内存使用量。相反,请使用imageWithContentsOfFile,以便不会将图像添加到缓存中。

UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

关于ios - 如何删除UIImageView的最后一张图片?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34458863/

10-13 05:42