在iOS 5.1项目(iPad)中使用SDWebImage 3.
我们展示相当大的图像(700x500),我们有很多(+1000)。我们正在预取图像并缓存到磁盘,然后允许用户浏览它们。
工作正常。除了在浏览图像时,您总会看到显示占位符的微小时刻,从而产生非常烦人的效果。
在我的用例中,等待一小段时间来检查磁盘缓存和进程,而不是显示占位符的时间少于半秒(基本上只是闪烁)。
我的问题与此类似:How to get filesystem path to image cached with SDWebImage (iOS)。注意:在我看来,尝试精简缓存的文件系统路径的方法是错误的。我只是引用它,因为它也解释了我的用例。
我希望有一种方法可以告诉SDWebImage如果图像在本地存储中则不使用占位符。如果我不能这样做,我可能需要寻找其他图书馆(我欢迎建议)。
注意:我们也使用RestKit(0.20)+ AFNetworking。
答案 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];