Загрузка изображений из сети (Download Images for Tableview or CollectionView) - Swift 5
// Класс в котором будет выполняться загрузка изображений
import UIKit
class ImageLoader {
static func DownloadImage(
withURL url : URL,
complition : _
image : UIImage -> ()) {
let dataTask =
URLSession.
shared.
dataTask(
with: url) {data, urlData, error1
in
// Картинка по умолчанию!
let defImage =
UIImage(
named: "RedRose.jpg")!
var downloadImage : UIImage?
if let data = data {
downloadImage =
UIImage(data:
data)
}
if downloadImage != nil {
print("Success DownLoad Image")
}
else {
print("Error download Image")
}
DispatchQueue.
main.
async {
complition(
downloadImage ??
defImage)
}
}
dataTask.resume()
}
}
Использование
override func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
// Заменить на массив!
let imageURL =
URL(
string: "
www.png")
// ImageLoader - название класса!
ImageLoader.
DownloadImage(
withURL: imageURL!) { (
lodedImg)
in
cell.
imgFlower.
image = lodedImg
}
}
Возврат к списку