如何在 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!) }
當我們在裝置上執行此程式碼時,我們將得到以下結果。
廣告