使用sd webimage库获取实际图像

时间:2017-06-02 13:41:00

标签: swift uicollectionviewcell sdwebimage

我有一个集合视图,使用sd webimage设置了一个图像视图。这个图像是缩略图。我想将实际图像传递给另一个视图控制器。我有实际图像的URL。如何获取实际图像,以便将此UIImage传递给下一个视图控制器。 请帮帮我。使用的语言是swift

1 个答案:

答案 0 :(得分:0)

我建议在CollectionViewCell

中使用SDWebImage框架中的以下方法
sd_setImage(with url: URL!, placeholderImage placeholder: UIImage!)

然后将URL传递给下一个视图控制器而不是实际图像,并在下一个视图控制器中重复使用相同的功能。

正如文档中明确指出的那样,“下载是异步的并且是缓存的。”这意味着,即使您在下一个视图控制器中调用此函数,它也不会重新下载图像,而是从缓存中获取。

=============================================== ==

或者,如果您想在推送到下一个视图控制器之前使用UIImage对象。如果要移动到下一个视图控制器并使用完成块获取图像并将其传递给下一个视图控制器,请使用以下方法。

sd_setImage(with url: URL!, completed completedBlock: SDWebImage.SDWebImageCompletionBlock!)

=============================================== ==

您还可以使用SDWebImageManager在没有UIImageView的帮助下下载图像,

确保先导入SDWebImage,

import SDWebImage

然后编写一个私有方法来处理图像下载,

fileprivate func downloadImage(with url:URL) {
    SDWebImageManager.shared().downloadImage(with: url, options: SDWebImageOptions(rawValue: 0), progress: nil) { (image, _, _, _, _) in
        if let _ = image {
            // Use the image object
        } else {
            // Try to download again (optional)
            self.downloadImage(with: url)
        }
    }
}

最后,使用以下代码

调用此方法
if let actualURL = URL(string: "Your Image's Actual URL") {
    self.downloadImage(with: actualURL)
}