qq432591
V2EX  ›  iOS

iOS 使用 XIb 搭建界面 现要适配夜间模式

  •  
  •   qq432591 · Oct 25, 2016 · 3443 views
    This topic created in 3486 days ago, the information mentioned may be changed or developed.

    请教下老司机, 现有项目 纯 XIB 搭建界面,现想做夜间模式适配,基本上就是 界面换色有什么比较好的思路么? 想来将 XIB 中的 view 都拖出来 设置颜色感觉好烦躁,

    4 replies    2016-10-25 16:40:39 +08:00
    zjupigeon
        1
    zjupigeon  
       Oct 25, 2016
    现在还是用 xib 做界面 ui 的多么?好像 ios 主推 sb
    Amztion
        2
    Amztion  
       Oct 25, 2016 via iPhone
    用 UIAppearance 可以实现的吧
    mingming
        3
    mingming  
       Oct 25, 2016
    我自己的项目里面用的一套方案供参考:
    使用 runtime 扩展 view 两个属性:白天颜色,黑夜颜色。
    使用 swizzledMethod 把对应的 stter 方法替换成自己的:比如 setBackgroundColor
    将 storyboard (xib) 界面的默认颜色作为白天的颜色。使用 @IBInspectable 修饰你的黑夜颜色属性。这样在 storybard 也可以配置。
    当视图被读取的时候会经过你 setter 方法,将第一次读取的颜色设置为白天颜色。
    然后在设置一下当前主题。显示不同的颜色。

    缺点是 像 UILabel 等 textColor 需要单独的方法,不会走 setter 方法。优点也很明显,可以直接在 storybard 里面直接配置两种配色。不需要写配置文件。
    mingming
        4
    mingming  
       Oct 25, 2016
    你也可以参考一些开源的实现,比如: https://github.com/Draveness/DKNightVersion 这个。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   920 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 20:33 · PVG 04:33 · LAX 13:33 · JFK 16:33
    ♥ Do have faith in what you're doing.