为什么将UIImage部分加载到TableViewCells中?

问题描述 投票:0回答:1

我有一个表格视图。首先,我从数据库加载所有单元的文本数据。接下来,我从另一个数据库为每个单元加载图像。但是当我尝试设置图像时,它们不会显示。

如果我使用

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 {...}中,因为正如我所说,图像是在创建单元格之后出现的。

ios swift uitableview uiimageview
1个回答
0
投票

加载后,您需要在主线程中刷新表视图。您可以使用:

DispatchQueue.main.async { self.yourTableView.reloadData() }

© www.soinside.com 2019 - 2024. All rights reserved.