如何使用SDWebImage从URL下载图像,然后将这些图像附加到UIImage阵列?

时间:2017-06-01 18:43:43

标签: ios arrays swift uiimage sdwebimage

我正在使用UIImageView.image来更改屏幕上的可见图像。

iv.image = images[index]

阵列'图像'目前已填充本地图像文件。但是,我希望从我的服务器下载图像,然后将它们附加到阵列。

private var images = [img1, img2, img3]

我建议使用SDWebImage(特别是SDWebImageManager或SDWebImageDownloader)来执行此操作,但是,在浏览下载和缓存教程时,所有这些都下载到UIImageView。我无法将UIImageView传入.image扩展名。我无法找到任何教程或示例来帮助我实现这一目标。我对swift很新,所以我没有大量的经验或理解。

1 个答案:

答案 0 :(得分:0)

您也可以在没有任何库的情况下下载图像Async。

以下将为imageView创建一个扩展,它将从服务器向下同步传输图像,只需将相应的url作为参数传递,它将返回一个图像。

extension UIImageView {
  public func imageFromServerURL(urlString: String) {
    URLSession.shared.dataTask(with: NSURL(string: urlString)! as URL, completionHandler: { (data, response, error) -> Void in
        if error != nil {
            print(error!)
            return
        }
        DispatchQueue.main.async(execute: { () -> Void in
            if let imageData = data {
                let image = UIImage(data: imageData)
                self.image = image
            }
        })            
    }).resume()
  }
}

// And you can call like this where ever required

cell.cellImageView.imageFromServerURL(urlString: banner.imageURL)