Так как 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.
Это прекрасно работает. так как мои изображения с диска довольно большие (более 1 МБ каждое).
Итак, вопрос в следующем: если я изменю размер изображения, используя DownsamplingImageProcessor
в 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
для этих двух разных страниц?