在Swift中实时/热加载
让我们谈谈样式。
我非常高兴能迅速分享一个我称为Styler Durden的造型概念。 它使您可以通过代码实时地为应用程序设置样式……这是实际的:
我正在直接使用Swift代码实时设计我的应用程序! 无需等待xcode编译更改。
这超出了样式,但是我想专注于样式,因为我认为这对我作为iOS开发人员来说是一个主要的痛点。
我怎样才能做到这一点?
我结合使用了分离的样式和一个名为Injection III的出色工具
这是我做样式最多的代码:
导入MulticastDelegateSwift
协议StylesDelegate:类{
func更新(样式:样式)
}
类样式{
让代表= MulticastDelegate ()
静态让fontColor = UIColor(红色:0,绿色:0,蓝色:0.1,字母:1)
静态让字体= UIFont.preferredFont(forTextStyle:.title1)
静态let backgroundColor = #colorLiteral(红色:0.9,绿色:0.4,蓝色:0.6,阿尔法:1)
func title(_标签:UILabel){
label.textColor = Styles.fontColor
label.textAlignment = .center
label.font = Styles.font
}
func字幕(_标签:UILabel){
label.textColor = Styles.fontColor
label.textAlignment = .center
label.font = Styles.font.withSize(12)
label.numberOfLines = 0
}
func defaultBackground(_ view:UIView){
view.backgroundColor = Styles.backgroundColor
}
@objc func injection(){
Representatives.invokeDelegates {(代表)
proxy.updated(样式:自我)
}
}
}
当您保存类并神奇地将代码注入并评估您的模拟器时,InjectionIII会调用@objc func injection() 。 其余的只是更新用户界面的管道。 我正在使用一个由StylerDurden组成的类,该类使我可以像这样应用样式:
titleLabel.sd.apply([styles.title])
真正理解这一点的最好方法是看代码。 我在这里整理了StylerDurden的一个功能齐全的示例。 记住也要在此处下载InjectionIII。
让我知道你的想法!
干杯,曼尼