CombineObject
CombineObject
响应式框架 Swift
版本,Value
和 View
相互绑定。
安装
CocoaPods
pod 'CombineObject'
Carthage
github "combineobject/CombineObject-Swift"
Package
https://github.com/combineobject/CombineObject-Swift
如何使用
示例1
假设我们界面上有一个
UIView
和一个UILabel
,我们希望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)
示例2
比如我们的属性没有与视图绑定属性,我们想在属性变化时更改值
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
}
}
示例3
属性控制
UIProgressView
属性
示例4
监听输入框的内容
示例5
监听
UISlider
的值
示例6
监听
UISwitch
的状态
示例6
监听
UItextView
的值变化
接口文档
目前支持的属性
UIView
- backgroundColor
- userInteractionEnabled
- frame
- alpha
- hidden
UILabel
- text
- font
- textColor
- attributedText
UISwitch
- on
UITextField
- text
- placeholder
UISlider
- value
UIProgressView
- 进度
UITextView
- text
UIView
的赋值支持属性方法
扩展public func setUIViewCombineValue(_ identifier: CombineIdentifier, _ value: CombineValue?)
让其他对象支持属性绑定
实现《CombineView》协议
func setCombineValue(_ identifier:CombineIdentifier, _ value:CombineValue?)
自定义赋值
实现属性
bin
值的代理方法``
self.color.bine.setCombineValueBlock = { content in
}