TwoWayBondage 2.2.0

TwoWayBondage 2.2.0

由以下人员维护: Plamen ZhelyazkovOliver SFKostadin ZamanovViktor GeorgievNikola Nikolov



  • Scalefocus

TwoWayBondage

Swift Version License Build Status CocoaPods Compatible Platform

易于使用的双向绑定库。绑定 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 文件。