RxKingfisher 2.1.0

RxKingfisher 2.1.0

RxSwift Community 维护。



 
依赖项
Kingfisher~> 5
RxSwift~> 6
RxCocoa~> 6
 

RxKingfisher

RxKingfisherKingfisher 的反应式扩展 - 一个轻量级、纯 Swift 的库,用于从网络上下载和缓存图像。

RxKingfisher Example

它在 Kingfisher 的 .kf 命名空间之上提供反应式扩展,通过 .kf.rx 实现,并引入了两种主要用法

通过 ResourceSource 绑定 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。