2

我使用苹果的ScrollingSuite对于一些大型的图像显示大量滚动视图后释放。(768 x1024)的ImageView的的图像是由iPhone内存犯规调用零

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

其中,numberImage设置是一个UIImageView,控制器是我在scrollview中添加的viewcontroller的一个对象。我设置的图像作为零当页面被

controller.numberImage.image = nil; 

滚出视但问题是我的应用程序运行的内存通过图像滚动时收到内存警告。每次显示新图像时,我都可以看到仪器工具(内存标签70)中的内存增加,它在Google上显示ImageIO。请帮我这个

在此先感谢

+0

您是否认为self.contentList在内存中保留图片的引用?应释放每个引用以释放对象。 – rjobidon

回答

1

尝试取出ImageView的([controller.numberImage removeFromSuperview];),然后添加回来之前,它是即将映入眼帘([controller addSubview:[[UIImageView alloc] initWithImage:[self.contentList objectAtIndex:page]]];)可能?

0

各种解决方案可以为这种类型的问题,所以...

  1. 我觉得你可以再次图像中删除像[controller.numberImage removeFromSuperview]或Alloc的ImageView的,当你需要的UImageView。它可以成为第一解。

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

  3. 最糟糕的解决方法是尝试降低图像分辨率而不更改图像的大小。