在Cell中model赋值时进行rx绑定

2020-07-27  本文已影响0人  zaq1125

最近学习Rxswift,在cell中,有时候在model赋值时才能进行绑定。因为复用和刷新,则会产生重复绑定,于是需要对disposeBag进行手动管理。在cell即将释放的时候,或者再次赋值前,将其释放。


4531C9A5795D95BB99390429F1A3E71A.jpg

单个Dispose,

private var powerDispose: Disposable?

var model: Your_Model! {
        didSet {
            setBinds(room: roomModel)
        }
    }
    
 private func setBinds(room: SingleRoomViewModel) {
        powerDispose?.dispose()
        powerDispose = model.power.map ({ (value) -> Float in
            let shadowOpacity = value ? 1 : 0
            return Float(shadowOpacity)
        }).bind(to: tempView.rx.shadowOpacity)
    }
上一篇 下一篇

猜你喜欢

热点阅读