我创建了一个自定义控件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