在 iOS 5.1 项目 (iPad) 中使用 SDWebImage 3。
我们显示相当大的图像(700x500),并且我们有很多图像(+1000)。我们预取图像并缓存到磁盘,然后允许用户浏览它们。
效果很好。除了当您浏览图像时,您总是会看到占位符显示一小会儿,从而产生非常烦人的效果。
在我的用例中,等待一小段时间来检查磁盘缓存和处理比显示占位符不到半秒(它基本上只是闪烁)要好得多。
我的问题与此类似:How to get filesystem path to image cached with SDWebImage (iOS) 。注意:在我看来,尝试细化缓存的文件系统路径的方法是错误的。我只是引用它,因为它也解释了我的用例。
我希望有一种方法告诉 SDWebImage 如果图像位于本地存储中则不要使用占位符。如果我做不到,我可能需要寻找其他库(我欢迎建议)。
注意:我们还使用 RestKit (0.20) + AFNetworking。
最佳答案
按照@sergio的建议,我修改了SDWebImage。对于任何感兴趣的人,有一个该项目的 fork 版本: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];
关于ios - SDWebImage 显示缓存中图像的占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034283/