У меня есть изображение в виде таблицы, которое загружается с Json, все работает отлично, но при прокрутке перед просмотром соответствующего изображения оно загружает другое на несколько секунд (это те изображения, которые уже видны в таблице).
Структура моих данных:
struct Data: Decodable {
let name: String
let img: String
let phone: String
let linktaller: String
let web: String
}
Код моей ячейки, в которую загружено изображение:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as? AseguradorasTableViewCell else { return UITableViewCell() }
cell.titleLbl.text = company[indexPath.row].name
.
.
.
// load image
if let imageURL = URL(string: company[indexPath.row].img) {
DispatchQueue.global().async {
let data = try? Data(contentsOf: imageURL)
if let data = data {
let image = UIImage(data: data)
DispatchQueue.main.async {
cell.myImage.image = image
}
}
}
}
return cell
}
Функция загрузки данных:
func downloadJSON() {
let url = URL(string: "http://myserver.com/data.json")
URLSession.shared.dataTask(with: url!) { (data, response, error) in
if error == nil {
do {
self.company = try JSONDecoder().decode([Data].self, from: data!)
print(self.company)
DispatchQueue.main.async {
self.tableView.reloadData()
self.refreshControl.endRefreshing()
}
} catch let jsonError{
print("error + \(jsonError)")
}
}
}.resume()
}
См. Изображение для более подробной информации:
Любые предложения можно решить эту проблему.