UITableViewCell продолжает изменять свое изображение при прокрутке - PullRequest
0 голосов
/ 02 октября 2018

Когда я прокручиваю табличное представление, изображение tableViewCell изменяет неправильное изображение.

Я пробовал это.

@IBOutlet weak var imageView: UIImageView!

override prepareForReuse() {
    super.prepareForReuse()

    self.imageView.image = nil
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as? MyCustomCell else { return UITableViewCell() }
    cell.tag = indexPath.row
    if cell.tag == indexPath.row {
        // download image
        downloadManager.download { (image) in
            cell.imageView.image = image
        }
    }
}

Но это все еще неправильное изображение при прокрутке,Как я могу это исправить ??

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

как только вы загрузили изображение (асинхронное), вам нужно проверить, действительно ли ваша ячейка связана с этим изображением.

например.ячейка может быть повторно использована для другого indexPath, поэтому загруженное изображение больше не является правильным.

Я добавил index (indexPath.row), чтобы загрузить закрытие завершения, чтобы вы могли проверить, равен ли cell.tag индексу

downloadManager.download(index: indexPath.row) { (image, index) in
    if cell.tag == index {
    cell.imageView.image = image
    }
}
0 голосов
/ 02 октября 2018

Вы можете установить изображение заполнителя, чтобы решить эту проблему.Пожалуйста, используйте https://github.com/onevcat/Kingfisher для асинхронной загрузки изображения

if let url = URL(string: "url_of_your_image") {
    imageView.kf.setImage(with: url)
}

Вот рабочий код для Загрузка и загрузки изображения с URL с отображением заполнитель изображение для загрузки фактического изображения с помощью NSCache .

https://stackoverflow.com/a/51746517/10150796

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...