【问题标题】:How do I observe changes in a UIControl subclass in ReactiveSwift?如何观察 ReactiveSwift 中 UIControl 子类的变化?
【发布时间】:2018-03-23 00:24:19
【问题描述】:

我已经构建了 UIControl 的子类,我想观察切换事件。从 RAC3 天开始就有一些较旧的答案,我们现在已经到 RAC5,所以我想我会问这个问题以获得更多最新信息。

【问题讨论】:

    标签: ios swift cocoa-touch reactive-cocoa


    【解决方案1】:

    我认为最常用的方法是使用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) { $0.selectedSegmentIndex }
        }
    }
    

    (这段代码其实是直接取自ReactiveCocoa)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多