加载图像到UICollectionView和缓存问题

我已经用来自API的图像填充了collectionView并对其进行了缓存。 它可以工作,但是最初加载图像时会出现问题。 imageView占用了collectionView缓存中的其他图像一秒钟,但它是可检测的,看起来很奇怪 相反,我想保持它为空,直到加载。

AF.request(imageurlstring).responseImage { response in

            if case .success(let image) = response.result {
                self.image = image
                imageChache.setObject(image, forKey: NSString(string: urlString))
            }
        }

enter image description here

评论
黑色爱情
黑色爱情

在设置任何新图像之前,将图像设置为nil。因此,在以下代码行之前添加self.image = nil:  self.image =图片

点赞
评论
funde
funde

发生这种情况是因为收集视图重复使用了单元,并且图像下载请求正在排队。这就是为什么对于某些单元格您会获得这种多种图像设置的原因。 为避免多重设置,您可以将图片的网址保存在单元格内的某个位置。并检查它是否与响应的URL相匹配。

 AF.request(imageurlstring).responseImage { response in

       if case  .success(let image) = response.result
          if cellImageURL == response.request.url {
             self.image = image
          }
          imageChache.setObject(image, forKey: NSString(string: urlString))
       }
 }
点赞
评论