JJComponentUpdateKit 可以上更新所有相关组件,以保持它们在同名变更时的一致性。您无需为每个模块编写通知处理代码。JJComponentUpdateKit 保证所有组件都更新到相同的状态。
例如,您应该在不同的模块中显示相同的名称,并且必须在不同的模块中编写名称更新代码。这可能会导致在不同模块中重复代码和名称错误。JJComponentUpdateKit 可以解决这些问题,并且您不需要在各个模块中编写任何更新代码。
将 JJComponentUpdateKit/JJComponentUpdateKit 目录移动到您的项目中。
编写处理通知和组件更新的功能类。
功能类应以 JJCUKFunction 开头。JJComponentUpdateKit 将根据类名规则创建函数类:"JJCUKFunction" + "function type"。[请参阅以下功能类型。]
let ChangeLabelTextNotificationName = "ChangeLabelTextNotificationName"
class JJCUKFunctionChangeLabelText: JJCUKHashTableComponentsFunction{
var pos = 1
override init() {
super.init()
let nc = NSNotificationCenter.defaultCenter()
nc.addObserver(self, selector: "changeLabelTextNotification", name: ChangeLabelTextNotificationName, object: nil)
}
override func updateComponent(component: JJCUKComponentDataSource!, withObject object: AnyObject!)
{
let label = component as! UILabel;
label.text = String(pos)
}
func changeLabelTextNotification()
{
++pos
updateAllComponentWithObject(nil)
}
}
定义功能类型并将其设置到您的组件。
组件必须响应 JJCUKComponentDataSource 协议。我已经将 NSObject 设置为响应 JJCUKComponentDataSource 协议。
let JJCUKFunctionTypeChangeLabelText = "ChangeLabelText"
label1.jjCUKFunctionType = JJCUKFunctionTypeChangeLabelText
label2.jjCUKFunctionType = JJCUKFunctionTypeChangeLabelText
当您设置功能类型时,JJComponentUpdateKit 首先将 label1 的文本设置为标签文本。当标签文本更改时,它将更新 label1 的文本。Label1 和 lable2 具有相同的文本并且一起更新。
JJSkin 在 MIT 许可下发布。请参阅 LICENSE。
有问题?请创建一个 issues!