【问题标题】:Why are UIImage's partially loaded in the TableViewCells?为什么 UIImage 的部分加载在 TableViewCells 中?
【发布时间】:2020-09-15 00:17:42
【问题描述】:

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

如果我使用

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

【问题讨论】:

  • 获取图片后可以使用reloadData

标签: ios swift uitableview uiimageview


【解决方案1】:

加载后需要在主线程中刷新 Table View。你可以这样做:

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

【讨论】:

  • 是的,你是对的。我是在设置文本数据后才做的,收到图片后没有
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2012-09-24
相关资源
最近更新 更多