4. RxSwift 自定义可绑属性

对 Reactive 进行扩展

// 给 UILabel 增加了 fontSize 可绑属性
extension Reactive where Base: UILabel {
    public var fontSize: Binder<CGFloat> {
        return Binder(base) { lab, size in
            lab.font = UIFont.systemFont(ofSize: size)
        }
    }
}

// 使用
let ob = Observable<Int>.interval(1, scheduler: MainScheduler.asyncInstance)
ob.map { CGFloat($0) + 10.0 }
    .bind(to: lab.rx.fontSize) // 这里要使用 .rx
    .disposed(by: disposeBag)

搬迁自本人简书

posted @ 2020-11-21 18:11  losht  阅读(195)  评论(0)    收藏  举报