由于Kingfisher
介绍LocalFileImageDataProvider
自5.0
. 我决定切换到Kingfisher
从我的磁盘加载图像,而不是直接加载它们。正如他们所说,
// Compared to loading it directly,
// you can get benefit of using Kingfisher's extension methods,
// as well as applying `ImageProcessor`s and storing the image to `ImageCache` of Kingfisher.
它工作得很好。因为我来自磁盘的图像非常大(每个超过 1MB)。
所以问题是如果我使用DownsamplingImageProcessor
in调整图像大小UICollectionView's Cell
,我是否仍然能够访问“图像的详细信息”页面中的原始大小图像以显示全分辨率图像,仍然像这样使用,
//The way loading image from "Image detail page"
let url = URL(fileURLWithPath: path)
let provider = LocalFileImageDataProvider(fileURL: url)
imageView.kf.setImage(with: provider)
所以在“UICollectionView 页面”我可以这样使用它,
let url = URL(fileURLWithPath: path)
let provider = LocalFileImageDataProvider(fileURL: url)
let processor = DownsamplingImageProcessor(size: size)
imageView.kf.setImage(with: provider, options: [.processor(processor)])
那么他们是在Kingfisher缓存机制中缓存了不同的图片缓存吗?因为他们似乎cacheKey
在LocalFileImageDataProvider
.
public init(fileURL: URL, cacheKey: String? = nil) {
self.fileURL = fileURL
self.cacheKey = cacheKey ?? fileURL.absoluteString
}
我是否需要cacheKey
为这两个不同的页面自定义?