Заполнитель изображения в виде эскиза (размытый) до фактической загрузки изображения

У меня есть код для показа полноэкранного изображения, как только пользователь выберет его.

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

Другие вопросы по тегам