【问题标题】:How to download image with URL Swift 3? [duplicate]如何使用 URL Swift 3 下载图像? [复制]
【发布时间】:2017-04-29 03:57:10
【问题描述】:

我是一名新手开发人员,我正在尝试从 URL 下载和显示图像并将其显示在 UIImage 视图中。我已经尝试了多种方法,使用来自先前提出的问题和网络的信息,但它不断出现多个错误。

【问题讨论】:

  • 从您已实现的多种方法中选择一种并发布它的代码,以及您遇到的错误。

标签: ios swift swift3


【解决方案1】:

Leo Dabus's answer here 中有一个很好的例子来说明如何做到这一点。我将在下面包含您问题的相关内容。

使用该帖子中的代码,我发现一种更简单、更简洁的方法是将扩展名添加到UIImageView

extension UIImageView {
    func downloadedFrom(url: URL, contentMode mode: UIViewContentMode = .scaleAspectFit) {
        contentMode = mode
        URLSession.shared.dataTask(with: url) { (data, response, error) in
            guard let httpURLResponse = response as? HTTPURLResponse, httpURLResponse.statusCode == 200,
                let mimeType = response?.mimeType, mimeType.hasPrefix("image"),
                let data = data, error == nil,
                let image = UIImage(data: data)
                else { return }
            DispatchQueue.main.async() { () -> Void in
                self.image = image
            }
        }.resume()
    }
    func downloadedFrom(link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) {
        guard let url = URL(string: link) else { return }
        downloadedFrom(url: url, contentMode: mode)
    }
}

然后您可以使用以下命令从视图控制器中获取图像:

if let url = URL.init(string: urlString) {
    imageView.downloadedFrom(url: url)
}

【讨论】:

  • @LeoDabus 已修复,感谢您在本网站上的出色回答。当我开始学习 Swift 时,它们给了我很大的帮助。
  • 让 url = URL(string:headerViewImageUrl) 让数据 = 试试? Data(contentsOf: url!) 让 img: UIImage = UIImage(data: data!)! imageview.imgage = img
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 2017-08-28
相关资源
最近更新 更多