我如何观察 ReactiveSwift 中 UIControl 子类的变化?
How do I observe changes in a UIControl subclass in ReactiveSwift?
我已经构建了 UIControl 的子类,我想观察切换事件。从 RAC3 天开始有一些较旧的答案,我们现在已经到了 RAC5,所以我想我会问这个问题以获得更新的东西。
我认为最常见的方法是使用 reactive.mapControlEvents
。基本上,它会创建一个信号,每次 UIControl
发送控制事件时都会触发该信号,并将 UIControl
映射到您感兴趣的 属性 上。
使用它,您可以根据需要创建自己的信号。例如,如果您想创建一个在 UISegmentedControl
更新其索引时触发的信号,您将执行以下操作:
extension Reactive where Base: UISegmentedControl {
/// A signal of indexes of selections emitted by the segmented control.
public var selectedSegmentIndexes: Signal<Int, NoError> {
return mapControlEvents(.valueChanged) { [=10=].selectedSegmentIndex }
}
}
(这段代码其实直接取自ReactiveCocoa
)。
我已经构建了 UIControl 的子类,我想观察切换事件。从 RAC3 天开始有一些较旧的答案,我们现在已经到了 RAC5,所以我想我会问这个问题以获得更新的东西。
我认为最常见的方法是使用 reactive.mapControlEvents
。基本上,它会创建一个信号,每次 UIControl
发送控制事件时都会触发该信号,并将 UIControl
映射到您感兴趣的 属性 上。
使用它,您可以根据需要创建自己的信号。例如,如果您想创建一个在 UISegmentedControl
更新其索引时触发的信号,您将执行以下操作:
extension Reactive where Base: UISegmentedControl {
/// A signal of indexes of selections emitted by the segmented control.
public var selectedSegmentIndexes: Signal<Int, NoError> {
return mapControlEvents(.valueChanged) { [=10=].selectedSegmentIndex }
}
}
(这段代码其实直接取自ReactiveCocoa
)。