SDWebImage显示缓存中图像的占位符

时间:2013-02-22 22:29:25

标签: ios sdwebimage

在iOS 5.1项目(iPad)中使用SDWebImage 3.

我们展示相当大的图像(700x500),我们有很多(+1000)。我们正在预取图像并缓存到磁盘,然后允许用户浏览它们。

工作正常。除了在浏览图像时,您总会看到显示占位符的微小时刻,从而产生非常烦人的效果。

在我的用例中,等待一小段时间来检查磁盘缓存和进程,而不是显示占位符的时间少于半秒(基本上只是闪烁)。

我的问题与此类似:How to get filesystem path to image cached with SDWebImage (iOS)。注意:在我看来,尝试精简缓存的文件系统路径的方法是错误的。我只是引用它,因为它也解释了我的用例。

我希望有一种方法可以告诉SDWebImage如果图像在本地存储中则不使用占位符。如果我不能这样做,我可能需要寻找其他图书馆(我欢迎建议)。

注意:我们也使用RestKit(0.20)+ AFNetworking。

1 个答案:

答案 0 :(得分:3)

按照@ sergio的建议我修改了SDWebImage。对于任何感兴趣的人,都有一个项目的分叉版本:https://github.com/josea/SDWebImage

用法是: [imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@“placeholder.png”] syncDiskLoad:YES];

我会向所有者发出拉取请求,以查看我的更改是否已合并到主分支中。

更新:

您可以这样做以避免闪烁(这适用于项目的主分支):

[imageView setImageWithURL:url placeholderImage:imageView.image options:0 
 progress:^(NSUInteger receivedSize, long long expectedSize) {
        imageView.image = [UIImage imageNamed:@"QuestionMarkFace.png"];
 } completed:nil];