我有一个表格视图。首先,我从数据库加载所有单元的文本数据。接下来,我从另一个数据库为每个单元加载图像。但是当我尝试设置图像时,它们不会显示。
如果我使用
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 {...}
中,因为正如我所说,图像是在创建单元格之后出现的。
加载后,您需要在主线程中刷新表视图。您可以使用:
DispatchQueue.main.async {
self.yourTableView.reloadData()
}