2

我正在使用 Apple 的 ScrollingSuite 显示带有大量大图像的大型滚动视图。(768 x1024)图像视图的图像由

controller.numberImage.image = [self.contentList objectAtIndex:page]; 

其中,numberImage 是 UIImageView,控制器是我在滚动视图中添加的视图控制器的对象。当页面滚动到视图之外时,我将图像设置为 nil

controller.numberImage.image = nil;

但问题是我的应用程序在滚动图像时收到内存警告的内存不足。每次显示新图像时,我都可以看到仪器工具(Memory Tag 70)中的内存增加,谷歌搜索结果显示为 ImageIO。请在这件事上给予我帮助

提前致谢

4

2 回答 2

1

尝试删除 imageView ( [controller.numberImage removeFromSuperview];),然后在它即将出现之前将其添加回来 ( [controller addSubview:[[UIImageView alloc] initWithImage:[self.contentList objectAtIndex:page]]];) 可能吗?

于 2011-10-19T02:26:34.293 回答
0

各种解决方案可以针对此类问题,因此...

  1. 我认为您可以在[controller.numberImage removeFromSuperview]需要时删除 imageview 并再次分配图像UImageView。它可以是第一个解决方案。

  2. 如果我解释一下,您一次可以加载 3 张图像,然后加载当前图像、上一张图像和下一张图像。这意味着如果您想查看图像 2 一次加载三张图像、图像 1、图像 2 和图像 3。当您滚动到下一个图像时,然后加载图像 2、图像 3 和图像 4 并释放图像 1……等等……反之亦然,用于加载图像之前的图像加载。

  3. 最糟糕的解决方案是尝试在不改变图像大小的情况下降低图像分辨率。

于 2011-10-26T09:08:44.037 回答