iOS 暗黑模式适配

图片适配:

使用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。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值