Ios 将图像加载到UICollectionView和缓存问题
我已经用API中的图像填充了collectionView并缓存了它。 它可以工作,但在最初加载图像时会出现问题。imageView占用collectionView缓存中其他一些图像的时间只有几分之一秒,但它是可检测的,看起来很奇怪 相反,我想让它一直空着,直到它加载Ios 将图像加载到UICollectionView和缓存问题,ios,swift,caching,uicollectionview,Ios,Swift,Caching,Uicollectionview,我已经用API中的图像填充了collectionView并缓存了它。 它可以工作,但在最初加载图像时会出现问题。imageView占用collectionView缓存中其他一些图像的时间只有几分之一秒,但它是可检测的,看起来很奇怪 相反,我想让它一直空着,直到它加载 AF.request(imageurlstring).responseImage { response in if case .success(let image) = response.result {
AF.request(imageurlstring).responseImage { response in
if case .success(let image) = response.result {
self.image = image
imageChache.setObject(image, forKey: NSString(string: urlString))
}
}
在设置任何新图像之前,请将图像设置为零。因此,在下一行之前添加self.image=nil:
self.image=image之所以会发生这种情况,是因为集合视图重用了单元格,并且图像下载请求正在排队。这就是为什么有些细胞会有这种多重图像设置。 为了避免多重设置,您可以将图像的url保存在单元格中的某个位置。并检查它是否与响应的url匹配
cellImageURL = imageurlstring
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))
}
}
您是否尝试过将imageview的图像设置为
nil
或集合视图单元格类的prepareforeuse
方法中的占位符。是的@TonyNguyen,我尝试过。它确实在一定程度上减少了问题,但有时仍然显示出相同的问题。它有自己的问题。现在,除非我向下滚动,然后向上滚动,否则单元格不会刷新。