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

iOS 暗黑模式适配

作者: 幻影松 | 来源:发表于2020-04-15 14:18 被阅读0次

    图片适配:

    使用ImageSet

    打开Assets.xcassets

    新建一个Image set  选择右边栏的Appearances中对应的选项适配深色模式。

    使用方法:[UIImage imageNamed:@"xxxx"];

    图片适配

    颜色适配:

    使用ColorSet

    打开Assets.xcassets

    新建一个Color set  选择右边栏的Appearances中对应的选项适配深色模式。

    颜色适配

    使用方法:

    self.view.backgroundColor =  [UIColor colorNamed:@"xxxx"];

    建议写一个通用的方法来设置颜色

    举个栗子🌰:

    注:[UIColor colorNamed:colorName]; 这个方法iOS11 之后才支持使用

    self.view.backgroundColor = [self fitDeviceModeColorWithColorSetByColorName:colorName orWithColor:color];

    -(UIColor *)fitDeviceModeColorWithColorSetByColorName:(NSString *)colorName orWithColor:(UIColor *)color{

        if(@available(iOS11.0, *)) {

            return [UIColor colorWithDynamicProvider:^UIColor*_Nonnull(UITraitCollection*_NonnulltraitCollection) {

                return  [UIColor colorNamed:colorName];

            }];

        }else{

            return color;

        }

    }

    适配暗黑遇到的问题:

    1:tabbar图标在切换深色模式时,图标没有发生改变。重新打开app才生效

    解决方案:

    tabbar 在ImageSet中设置渲染模式为:Original Image。这样app切换深/浅模式后,tabbar图标会相对应发生变化。

    tabbars 图标设置 适配深色模式

    2:有拉伸的图片在模式切换之后,图片没有发生变化。

    解决方案:图片的拉伸在Image set 里设置Slicing。

    拉伸图片适配暗黑模式

    禁用深色模式:

    1: 在App内禁用深色模式: 可以在Info.plist(全局) 中,设置 User Interface Style 为 Light。

    2: 在单个页面内禁用深色模式使用overrideUserInterfaceStyle: self.overrideUserInferfaceStyle = UIUserInterfaceStyleLight。

    在单个页面内禁用浅色模式使用overrideUserInterfaceStyle: self.overrideUserInferfaceStyle = UIUserInterfaceStyleDark。

    相关文章

      网友评论

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

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