在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。

让我知道你的想法!

干杯,曼尼