Swiftpack.co - Package - combineobject/CombineObject-Swift

CombineObject

CombineObject 响应式框架 Swift 版本, ValueView 相互绑定。

image-20190806101237397

安装

CocoaPods

pod 'CombineObject'

Carthage

github "combineobject/CombineObject-Swift"

Package

https://github.com/combineobject/CombineObject-Swift

怎么使用

Example1

假如我们界面一个UIViewUILabel,我们想让UIView的背景颜色和UILabel的文本颜色一直保持统一。做法很多种,我们看看这个库可以做什么。

  • 声明一个变量做控制

    @CombineObjectBind var color = UIColor.gray
    
  • 绑定到试图

    self.displayLabel.bind(identifier: UILabelIdentifier.textColor, combineObject: self._color)
    self.displayView.bind(combineObject: self._color)
    
  • 更新属性更新试图

    self.color = UIColor.red
    
  • 直接更新一个试图的值

self.displayView.updateBindValue(value: UIColor.blue)

2019-08-06 10-22-35.2019-08-06 10_24_52

Example2

比如我们的属性没有我们试图绑定属性 我们想接受到属性变化时候更改值

self._color.bind.combineValueChangedBlock {[weak self] (value) in
    if let boardColor = value as? UIColor {
        self?.displayLabel.layer.borderWidth = 1
        self?.displayLabel.layer.borderColor = boardColor.cgColor
    }
}

2019-08-06 10-39-10.2019-08-06 10_39_44

Example3

属性控制UIProgressView属性

2019-08-06 11-18-14.2019-08-06 11_18_55

Example4

监听输入框的内容

2019-08-06 11-34-01.2019-08-06 11_34_27

Example5

监听UISlider

2019-08-06 11-45-34.2019-08-06 11_45_56

Example6

监听UISwitch的状态

2019-08-06 11-55-15.2019-08-06 11_55_32

Example6

监听UItextView值变化

2019-08-06 12-07-29.2019-08-06 12_07_49

接口文档

目前支持的属性

UIView

  • backgroundColor
  • userInteractionEnabled
  • frame
  • alpha
  • hidden

UILabel

  • text
  • font
  • textColor
  • attributedText

UISwitch

  • on

UITextField

  • text
  • placeholder

UISlider

  • value

UIProgressView

  • progress

UITextView

  • text

扩展UIView的赋值支持属性方法

public func setUIViewCombineValue(_ identifier: CombineIdentifier, _ value: CombineValue?)

让其他的对象支持属性绑定

实现CombineView协议

func setCombineValue(_ identifier:CombineIdentifier, _ value:CombineValue?)

自定义赋值

实现属性bine值的代理方法``

self.color.bine.setCombineValueBlock = { content in
}

Github

link
Stars: 0
Help us keep the lights on

Dependencies

Used By

Total: 0

Releases

1.0.1 - Aug 20, 2019

1.0.0 - Aug 7, 2019