SDWebImage - 如何从缓存加载图像?
Posted
技术标签:
【中文标题】SDWebImage - 如何从缓存加载图像?【英文标题】:SDWebImage - how to load image from Cache? 【发布时间】:2012-07-19 05:19:51 【问题描述】:我使用SDWebImage
将图像下载到我的UITableView
使用:
[cell.imageView setImageWithURL:[NSURL URLWithString:tempPhotoURL] placeholderImage:[UIImage imageNamed:@"temp.jpg"]];
这非常有效 - 没有问题。但是,当我单击 TableView 中的任何给定行时,我想将该行的缩略图加载到 UIImageView
中,该UIImageView
位于我正在导航的即将到来的详细信息屏幕中。那么我该怎么做呢?我现在是否必须从缓存中获取图像,因为它已经下载了?如果是这样,这个方法/过程是什么?如果这不是要走的路,那是什么?
我无法从 SDWebImage
库中包含的所有这些文件和方法中弄清楚...
【问题讨论】:
【参考方案1】:只需使用几乎完全相同的代码来设置图像 - SDWebImage 将检查它是否已经缓存,如果是,它将使用它而不是从 url 获取图像。
【讨论】:
【参考方案2】:试试这个,
[self.imgView sd_setImageWithURL:[NSURL URLWithString:imageUrl placeholderImage:placeholderUrl options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize)
//Progress block
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
//Completion block
];
【讨论】:
【参考方案3】:编码时有很多方法可以实现。 一个想到的是确保 UIImageView 是您的详细视图控制器(详细视图控制器的 API 的一部分)的可访问属性。 然后,您需要做的就是在推送详细视图控制器之前,将单元格的图像视图分配给详细视图的 UIImageView 属性。
或
创建一个方便的初始化程序并将单元格的图像视图传递给它... 等等等等。
【讨论】:
【参考方案4】:调用同样的方法,你在TableView
中下载的DetailView
中设置图片时,它会先检查缓存。这是使用SDWebImage
下载图像的代码sn-p
[yourImageView sd_setImageWithURL:[NSURL URLWithString:yourImageUrl]
placeholderImage:[UIImage imageNamed:@"placeholder.jpg"]];
【讨论】:
以上是关于SDWebImage - 如何从缓存加载图像?的主要内容,如果未能解决你的问题,请参考以下文章
使用 SDWebImage 而不是 AFNetworking 进行图像加载有很大的优势吗?
如何从按钮的 imageView 中删除缓存的 SDWebImage