请教下老司机, 现有项目 纯 XIB 搭建界面,现想做夜间模式适配,基本上就是 界面换色有什么比较好的思路么? 想来将 XIB 中的 view 都拖出来 设置颜色感觉好烦躁,
1
zjupigeon 2016-10-25 15:20:19 +08:00
现在还是用 xib 做界面 ui 的多么?好像 ios 主推 sb
|
2
Amztion 2016-10-25 16:15:06 +08:00 via iPhone
用 UIAppearance 可以实现的吧
|
3
mingming 2016-10-25 16:34:21 +08:00
我自己的项目里面用的一套方案供参考:
使用 runtime 扩展 view 两个属性:白天颜色,黑夜颜色。 使用 swizzledMethod 把对应的 stter 方法替换成自己的:比如 setBackgroundColor 将 storyboard (xib) 界面的默认颜色作为白天的颜色。使用 @IBInspectable 修饰你的黑夜颜色属性。这样在 storybard 也可以配置。 当视图被读取的时候会经过你 setter 方法,将第一次读取的颜色设置为白天颜色。 然后在设置一下当前主题。显示不同的颜色。 缺点是 像 UILabel 等 textColor 需要单独的方法,不会走 setter 方法。优点也很明显,可以直接在 storybard 里面直接配置两种配色。不需要写配置文件。 |
4
mingming 2016-10-25 16:40:39 +08:00
你也可以参考一些开源的实现,比如: https://github.com/Draveness/DKNightVersion 这个。
|