自定义UISlider支持RxSwift

时间:2016-06-01 15:40:05

标签: ios swift rx-swift

我创建了一个自定义控件thad,作为UISlider。现在我想将它与RxSwift一起使用,为此我需要rx_value类似于我的控件属性。 我在GitHub上找到了UISlider的RxSwift代码:

extension UISlider {

    /**
    Reactive wrapper for `value` property.
    */
    public var rx_value: ControlProperty<Float> {
        return UIControl.rx_value(
            self,
            getter: { slider in
                slider.value
            }, setter: { slider, value in
                slider.value = value
            }
        )
    }

}

它确实看起来很简单,所以我决定只在我的控制中重复它,但显然rx_value的{​​{1}}属性是私有的。什么可以解决这个问题?

更新:

这就是我要使用这个属性的方式:

UIControl

并在viewModel中:

var latestRank: Observable<Int> {
        return oneSlider
            .rx_distance.asObservable()
            .throttle(0.5, scheduler: MainScheduler.instance)
            .distinctUntilChanged()

在viewModel distanceRank .observeOn(MainScheduler.instance).subscribeNext { rank in print(rank) self.discoverNodes(true) } 中定义如下:

distanceRank

这是let distanceRank: Observable<Int> 的扩展名:

rx_distance

0 个答案:

没有答案