2

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

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

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

在我的用例中,等待一小段时间检查磁盘缓存和进程比显示占位符不到半秒(它基本上只是闪烁)要好得多。

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

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

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

4

1 回答 1

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];
于 2013-02-26T20:49:48.220 回答