Почему UIImage частично загружен в TableViewCells? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть табличное представление. Сначала я загружаю текстовые данные для всех ячеек из базы данных. Затем я загружаю изображение для каждой ячейки из другой базы данных. Но когда я пытался установить изображения, они не отображаются.

Если я использую

let cell = myTableView.dataSource?.tableView(myTableView,
                                       cellForRowAt: indexPath) as? MyTableViewCell

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

Другой способ, если я использую

let cell = myTableView.cellForRow(at: indexPath) as? MyTableViewCell

, происходит обратное - только те ячейки, которые я вижу, показывают свои изображения, а все остальные - нет.

После этого я делаю

cell.setImage(image: image)
func setImage(image: UIImage) {
        guard let myImageView = myImageView else { return }
        myImageView.image = image
    }

Я устанавливаю изображения не в func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {...}, потому что, как я уже сказал, изображения появляются после создания ячеек.

1 Ответ

1 голос
/ 27 мая 2020

Вам необходимо обновить sh табличное представление в основном потоке после загрузки. Вы можете сделать это с помощью:

DispatchQueue.main.async {
            self.yourTableView.reloadData()
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...