如何在 iOS 设备上使用 Swift 加载 URL 中的图片?
要使用 Swift 在 iOS 中加载图片,我们将使用简单的 Data Task 会话。图片需要在后台加载,因为它可能很大,我们不希望它阻止主视图的操作。
让我们通过一个例子来了解这一点。创建一个空项目并添加一个空的 Image View。
创建其出口,然后我们将编写代码从 URL 获取图片。这就是我们应用程序目前的样子。

现在,让我们添加代码从 URL 获取图片。
func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
}
func downloadImage(from url: URL) {
getData(from: url) {
data, response, error in
guard let data = data, error == nil else {
return
}
DispatchQueue.main.async() {
self.image = UIImage(data: data)
}
}
}当我们运行此代码时,它将从 URL 下载图片,我们可以创建一个图片对象并使用新对象初始化我们的 imgView。
但是,让我们为此方法创建一个扩展并使用它。
extension UIImageView {
func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
}
func downloadImage(from url: URL) {
getData(from: url) {
data, response, error in
guard let data = data, error == nil else {
return
}
DispatchQueue.main.async() {
self.image = UIImage(data: data)
}
}
}
}现在,在我们的 viewDidLoad(或您喜欢的任何其他位置)中添加以下代码。
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://static.independent.co.uk/s3fs-public/thumbnails/image/2017/09/12/11/naturo-monkey-selfie.jpg?w968h681")
self.imgView.downloadImage(from: url!)
}当我们在设备上运行此代码时,我们将得到以下结果。

广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP