在某些情况下,我将图像,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"))
}
}
答案 0 :(得分:0)
我想您需要取消prepareForReuse
中的图像下载-仅将图像设置为nil
即可。
请考虑以下情形:
image
或video
单元格,会触发图像下载document
单元格,并设置Pdf-icon
映像(之前的下载仍在运行!)