gpt4 book ai didi

ios - UICollectionViewCell 中的图像被另一个 Cell 中的图像替换

转载 作者:行者123 更新时间:2023-11-30 11:13:01 25 4
gpt4 key购买 nike

有一种情况,我将图像、PDF 和 YouTube URL 上传到服务器,完成后,这些项目将显示在 UICollectionView 中。图像按原样显示,对于 PDF,有一个图标,对于视频,则有缩略图。如果我先上传图像,然后上传 pdf,然后上传 YouTube URL,则在 collectionView 中,带有 pdf 图标的单元格将被图像替换。我正在使用Kingfisher用于从网络下载和缓存图像。

这是我的 collectionViewCell 代码。

override func prepareForReuse() {
self.imageView.image = nil
}

func configure(doc: GenericSubmissionDoc) {
switch doc.type {
case .document:
self.imageView.image = UIImage(named: "Pdf-icon")
case .image:
self.imageView.setImageFromUrl(urlString: doc.url)
case .video:
self.imageView.contentMode = .scaleAspectFit
guard let thumbnailLink = doc.videoThumbnailUrl else {
self.imageView.image = UIImage(named: "youtube")
return
}
self.imageView.setImageFromUrl(urlString: thumbnailLink, placeHolder: UIImage(named: "Node-Placeholder"))
}
}

最佳答案

我猜您需要在 prepareForReuse 中取消图像下载 - 仅将图像设置为 nil 不会这样做。

考虑以下场景:

  • 单元格用作图像视频单元格,触发图像下载
  • 在下载完成之前,单元格将被重新用作文档单元格,并且您设置Pdf-icon图像(之前的下载仍在运行!)<
  • 下载完成后,它将用下载的图像替换 PDF 图标。

关于ios - UICollectionViewCell 中的图像被另一个 Cell 中的图像替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com