美文网首页iOS 开发
iOS13 暗黑模式适配

iOS13 暗黑模式适配

作者: 介是阿姐 | 来源:发表于2020-04-07 14:52 被阅读0次

    iOS 13 暗黑模式适配

    首先将xcode更新到11,在模拟器中 settings - Developer 中打开 Dark Appearance,这样就打开了暗黑模式。

    UITraitCollection

    UIViewControllerUIViewUIScreenUIWindow 遵从了协议 UITraitEnvironment ,这个协议有一个 UITraitCollection 类型的属性 traitCollection,从而这些类也拥有了这个属性 ,我们可以通过这个属性来判断当前的app的是否暗黑模式:

    BOOL isDark = (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark);
    

    使用时机

    UIViewController

    - (void)viewWillLayoutSubviews;
    - (void)viewDidLayoutSubviews;
    - (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection;
    
    

    UIView

    - (void)drawRect:(CGRect)rect;
    - (void)layoutSubviews;
    - (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection;
    
    
    注:使用 traitCollectionDidChange 这种方式,只有在模式发生改变时才会调用。
    

    关闭全局暗黑模式

    info.plist中设置key User Interface Style value Light

    暗黑模式打开,单个视图关闭

    在iOS13中UIViewControllerUIViewUIScreenUIWindow有一个overrideInterfaceStyle的新属性,可以覆盖系统的模式
    self.overrideInterfaceStyle = UIUserInterfaceStyleLight;
    如果想仅单个视图监听:
    self.overrideInterfaceStyle = UIUserInterfaceStyleUnspecified;

    Assets.xcassets

    Assets.xcassets中配置不同模式下的图片

    1.png

    参考

    https://www.fivestars.blog/code/ios-dark-mode-how-to.html

    相关文章

      网友评论

        本文标题:iOS13 暗黑模式适配

        本文链接:https://www.haomeiwen.com/subject/ddhnphtx.html