Заполнитель изображения в виде эскиза (размытый) до фактической загрузки изображения
У меня есть код для показа полноэкранного изображения, как только пользователь выберет его.
fullImage.kf.setImage (с: url)
Во время загрузки самого изображения я хотел показать заполнитель в виде того же изображения, но с уменьшенным размером эскиза. Эта миниатюра была кэширована библиотекой Kingfisher при отображении миниатюр ранее.
Когда я показываю изображение без библиотеки KF, с помощью обычного загрузчика iOS UIImage он показывает размытый предварительный просмотр растянутых миниатюр, а затем показывает реальное изображение. Как этого достичь с помощью библиотеки KF?
1 ответ
Вы можете использовать изображение держателя, как показано ниже
fullImage.kf.setImage(with: url, placeholder: UIImage(named: "placeholder"), options: nil, progressBlock: nil, completionHandler: nil)
Но чтобы показать миниатюру, вы должны иметь уменьшенное изображение, загруженное отдельно.
Если вы хотите, чтобы миниатюра была изображением из Интернета, вы можете делать то, что люди предлагают на GitHub.
let cacheImage = ImageCache.default.retrieveImageInDiskCache(forKey: "cache")
let resource = ImageResource(downloadURL: imageURL, cacheKey: "cache")
imageView.kf.setImage(with: resource, placeholder: cacheImage, options: [.keepCurrentImageWhileLoading], progressBlock: nil, completionHandler: nil)
Однако сначала вам нужно найти способ загрузить эскизы, что можно сделать несколькими способами, например, используя
ImagePrefetcher