专栏名称: small3flower
目录
相关文章推荐
人民网舆情数据中心  ·  江苏泰州一公司发生燃爆事故、郑州公交通报双层 ... ·  昨天  
人民网舆情数据中心  ·  古城闪现年轻人“要饭” ... ·  昨天  
人民网舆情数据中心  ·  十四届全国人大三次会议闭幕丨一览众云•数递舆 ... ·  2 天前  
人民网舆情数据中心  ·  苏轼诗句“怀民亦未寝”火爆出圈的社会心态分析 ·  2 天前  
51好读  ›  专栏  ›  small3flower

WWDC2019-214-iOS 13 适配 dark mode

small3flower  · 掘金  ·  · 2019-06-11 10:09

正文

阅读 19

WWDC2019-214-iOS 13 适配 dark mode

Dark Mode

一 、原理

状态 UITraitCollection 改变从屏幕到 view 的传递过程,目前支持手动触发和自动触发。如果设置了 view 的 dynamic color 和 dynamic image, 则 view 的 color 和 image 都会跟着改变。

condition_change

当前情景改变会调用 UITraitEnvironment(iOS 8) 协议的方法,对于需要单独适配的 View,ViewController 需要在此方法进行一些特殊处理,UIView,UIViewController 均遵守该协议

- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
    [super traitCollectionDidChange:previousTraitCollection];
    
    // 对比情景改变
    BOOL isChanged = [traitCollection hasDifferentColorAppearanceComparedToTraitCollection:previousTraitCollection];
}
复制代码

View 的 layoutSubView, ViewController 的 viewDidLayoutSubviews 均会触发 traitCollectionDidChange: 方法

current_trait_collection

二 、适配相关

  1. Dynamic Color

    动态颜色,根据当前情景自动切换颜色,iOS 13 新定义了一批 dynamic color, 大部分以 system 开头,也有以适用类别开头的,例如 labelColor,systemGroupedBackgroundColor ,可以直接用







请到「今天看啥」查看全文