TwoWayBondage
易于使用的双向绑定库。绑定 ViewModel 中的值到 View 的最简便方法。基于 SimpleTwoWayBinding
目录
要求
- iOS 12.0+
- Swift 5
安装
TwoWayBondage 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile
pod 'TwoWayBondage'
为了获得全部功能,在源文件的开始处导入 TwoWayBondage
import TwoWayBondage
使用示例
创建 ViewModel
所有可绑定属性都应在 ViewModel 中声明为可观察的。
import TwoWayBondage
struct ExampleViewModel {
let name: Observable<String> = Observable<String>()
let isBroccoliLover: Observable<Bool> = Observable<Bool>()
let isIceCreamLover: Observable<Bool> = Observable<Bool>(true)
}
创建 ViewController
要将可观察的与 UIControls 或 vice versa 进行绑定 - ViewController 应调用 bind 或 bindAndFire。
@IBOutlet private weak var nameTextField: UITextField!
@IBOutlet private weak var welcomeLabel: UILabel!
@IBOutlet private weak var iceCreamSwitch: UISwitch!
override viewDidLoad() {
...
bindEvents()
}
private func bindEvents() {
nameTextField.bind(viewModel.name)
viewModel.name.bind { [weak self] name in
self?.welcomeLabel.text = name
}
vieModel.isIceCreamLover.bindAndFire { [weak self] value in
self?.iceCreamSwitch.setOn(value, animated: true)
}
}
协议
TwoWayBondage 可在 MIT 协议下使用。更多信息请参阅 LICENSE 文件。