UITableView не показывает удаленное изображение до прокрутки или перезагрузки tableviewcell

A + соответствует одному или нескольким экземплярам предыдущего шаблона. * соответствует нулю или более экземплярам предыдущего шаблона.

Итак, в основном, если вы используете +, должен быть хотя бы один экземпляр шаблона, если вы используете *, он будет по-прежнему совпадают, если нет экземпляров.

0
задан blukku blukku 18 January 2019 в 06:55
поделиться

1 ответ

Нет! Вам не нужно каким-либо образом перезагружать tableView после завершения загрузки изображения в определенной ячейке. Кроме этого, вы все делаете правильно. Я тоже использую Kingfisher.

Но в будущем вы могли бы просто создать функцию в своем классе ячеек, скажем setupCell(_ imageURL: URL?). В любом случае, продолжая, в вашем методе cellForRow, просто сделайте это так:

cell.gifImage.kf.setImage(with: imageView, placeholder: placeHolderImage, completionHandler: nil)

Теперь, в случае, если изображение не загружено или у вас нет строки URL-адреса изображения, которую нужно сделать в URL объект, вы можете поймать его в блоке ошибок Kingfisher, тогда вам нужно будет передать ваш объект error image (a UIImage) вашему imageView, чтобы не было дублированного изображения.

Например, у меня есть следующее в функции setupCell() моей ячейки:

    if let url = vendor.image?.URLEscaped {
        let resource = ImageResource(downloadURL: url, cacheKey: url.absoluteString)
        self.imageView_Vendor.kf.setImage(with: resource, options: [.transition(.fade(0.2)), .cacheOriginalImage])
        return
    }

    self.imageView_Vendor.image = nil

Надеюсь, это поможет! 1115]

Для обработки высоты изображения это может помочь: https://stackoverflow.com/a/52787062/3231194

0
ответ дан Glenn 18 January 2019 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: