2011-03-01 63 views
3

使用占位符图像的正确方法是什么?在加载完整图像之前使用占位符图像

我想用图像填充UIScrollView作为子视图,但是在显示滚动视图之前,要在较早的设备上加载所有完整图像,这一直很沉重。

如何使用占位符图像,以便当用户滚动到contentOffset时可以加载完整图像?

我试过使用ALAsset的缩略图,但缩放看起来很可怕。

回答

2

假设您使用图像切片的UIImageView子视图。在开始的时候,你可以填充像这样你的UIImageView子视图:

for each tile location in myScrollView area: 
    [myScrollView addSubview:[UIImageView 
     initWithImage:[UIImage imageNamed:@"placeholder.png"]]]; 

这里的关键是,imageNamed做幕后(见SDK文档)behind缓存,并且只有一个实际placeholder.png图像将存在于内存中。

在您的UIScrollView事件委托中,当用户滚动并在没有加载其内容的新磁贴上定位时,请启动加载过程并替换该位置的UIImageView(删除占位符,添加适当的一)。

显然,您可能还想在某些时候卸载旧图像切片以节省内存。

+0

太好了。使用一个占位符图像,照片应用程序如何获得每张图像的低质量图像,然后加载正确的图像?如果您在照片应用程序滚动视图中快速滑动,则会看到此模糊的图像,然后将其加载到完整图像中。 – jarryd 2011-03-01 10:38:50

+0

哦,我明白了,你想要一个低分辨率预览?这在你的问题中并不清楚(但是暗示,我现在看到)。我猜测照片应用存储了低分辨率预览,并进行了某种过滤,使其看起来不太可怕(例如某种模糊效果)。 – occulus 2011-03-01 10:41:18

+0

模糊不清,请查看:http://iphonedevelopment.blogspot.com/2010/08/uiimage-blur.html – occulus 2011-03-01 10:43:20

相关问题