RxKingfisher 是 Kingfisher 的反应式扩展 - 一个轻量级、纯 Swift 的库,用于从网络上下载和缓存图像。
它在 Kingfisher 的 .kf
命名空间之上提供反应式扩展,通过 .kf.rx
实现,并引入了两种主要用法
Resource
或 Source
绑定 URL 到 Image View
通过 每个 Image view 都有两个不同的选项可以将 URL 绑定到 Image view。
optionSelected // Observable<Resource> or Observable<Source>
.bind(to: image.kf.rx.image(options: [.transition(.fade(0.2))])
.disposed(by: disposeBag)
或者
optionSelected // Observable<Resource> or Observable<Source>
.flatMap { url in imageView.kf.rx.setImage(with: url, options: [.transition(.fade(0.2))]) }
.subscribe(onNext: { image in
print("Image successfully loaded and set on Image view: \(image)")
})
.disposed(by: disposeBag)
引用
URL
实现了Resource
(见 Kingfisher.Resource.swift)
不使用 Image View 检索图像
每个 KingfisherManager
都支持从 URL 获取图像,返回一个 Single<Image>
tappedButton
.flatMapLatest { KingfisherManager.shared.rx.retrieveImage(with: urlToImage) }
.subscribe(onNext: { image in
print("Image successfully loaded: \(image)")
})
.disposed(by: disposeBag)
许可
RxKingfisher 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE。