我使用翠鸟下载和设置图像imageviews在细胞中的imagableView。一切正常,在下载新图像之前,tableview首先显示占位符图像。但是,只有在滚动表视图后,这些占位符图像才会更新为正确的图像。如何在下载图像后立即更新单元格?谢谢
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = articlesTableView.dequeueReusableCell(withIdentifier: "articleCell", for: indexPath) as! ArticleCell
let resource = self.articlesArray?[indexPath.item].downloadedImageResource
//resources are being downloaded using Kingfisher when populating the articlesArray and added to this array
cell.picView.kf.setImage(with: resource, placeholder: #imageLiteral(resourceName: "LS_logo_male")){ (image, error, cacheType, imageUrl) in
cell.setNeedsLayout()
}
return cell
}
2条答案
按热度按时间plicqrtu1#
你可以从表格视图中得到可见的单元格,在那里你可以得到每个单元格的图像视图。你可以试着用翠鸟来更新图像。这里您没有刷新单元格。查找单元格并更新内容。这样它看起来就不会像 Flink 。
am46iovg2#
请在'ArticleCell.swift'中对每个单元格进行UI更改,因此在我的情况下,我使用了'Nuke'库,到目前为止,它在下载和真实的显示图像时给了我最好的用户体验。请参考下面给出的代码以获得帮助:
在main class中这样做:
在'ArticleCell.swift'类中这样做: