用于与 Apple API 交互的简单 RxSwift 扩展。
<~
observable<~
将观察者订阅到可观察对象。观察者可以是任何 ObserverType
、Variable
或 (value)->()` 封闭。可观察对象可以是任何
ObservableType
、Variable
或 ObservableConvertibleType
。此操作符返回一个 Disposable
。
++
disposable++
将一个 Disposable
添加到一组废弃的集合(DisposeBag
或 CompositeDisposable
)中,并返回该集合。
这些算子组合使用可以轻松实现数据流的可视化
static func bindView(view: View, model: Model, selectionHandler:(SearchResult)->()) {
view.rxs.disposeBag
++ view.searchResults <~ model.searchResults
++ model.searchTerm <~ view.searchTerm
++ selectionHandler <~ view.selectionEvents
}
RxSugar 将 Sugar
添加到所有 NSObjects,名称为 rxs。rxs 属性包含许多常见 API 的 RxSwift 绑定。以下是一些例子:
object.rxs.disposeBag
- 在 deinit 时将被废弃的废弃集合
button.rxs.tap
- 一个 Observable<Void>
,在每次 .TouchUpInside
控制事件时发送一个事件。
textField.rxs.text
- 一个 ValueBinding<String>
,在每次 .EditingChanged
控制事件时发送一个事件并为发送到其上的每个事件设置控制器的文本。
textField.rxs.attributedText
- 一个在每次收到 .EditingChanged
控制事件时发送事件并为每个发送到它的每个事件设置控件的 attributedText 的 ValueBinding<NSAttributedString>
。
与 UITextField 相同,但使用 UITextViewTextDidChangeNotification
来驱动事件。
TargetActionObservable
和 ValueBinding
为创建与上述示例类似的自定义界面“甜点”提供了基础。