2011-04-27 78 views
0

我有一个启用了分页的UIScrollView。所有图像在开始时加载并添加到UIImageView中,但是由于它是更多图像,所以我有内存问题,因此如果图像尚未设置,我决定在滚动时加载下一张图像。如果我收到内存警告,我将除去当前所有图像。UIScrollView在将图像加载到UIImageView时挂起

问题是,如果我滚动scrollview挂几毫秒。

我使用

UIImage *image = [UIImage imageNamed:@"path/to/image.png"]; 

加载图像。如果我使用imageWithContentsOfFile方法,它花费更多的时间。

有没有一种方法可以像默认的Photoapp一样显示像素化图像,直到完全加载?

感谢您提前给出答案。

回答

0
[UIImage imageNamed:] 

为您缓存图像,所以这就是为什么它比imageWithContentsOfFile更好。由于这些图像显示在表格单元中,可能它们不需要那么大。文件系统上的图像尺寸是什么?如果你只是把UIImage放在一个UIImageView中,并依靠它来缩放,我的猜测就是缩放是在你滚动的时候发生的。你可以为文件系统上的每个图像创建缩略图并使用它们吗?

+0

图像显示在UIScrollView中。图像的分辨率为960x480(iphone 4 res)并缩小了比例。我认为使用一个图像比使用@ 2x添加第二个图像更容易。创建缩略图会花费我很多时间。没有其他办法吗? – 2011-04-27 14:54:24

+0

如果您依赖于UIImageView来缩放图像,那么无论如何您都有效地在内存中创建缩略图。滚动时,您不希望发生这种情况。我会尝试找一些其他时间来执行此操作,例如应用程序启动。关于像素化的图像加载,我不知道有什么神奇的方式来做到这一点。创建一个低分辨率的图像并首先加载,然后淡入高分辨率。低分辨率版本可能只是缩小的缩略图。 – ax123man 2011-05-02 12:49:20