暗黑模式适配

作者: 下线的时候 | 来源:发表于2020-07-08 17:57 被阅读0次

参考文章地址:https://www.jianshu.com/p/0da3b107f06c

一、适配暗黑模式

1、颜色适配

iOS13以后,颜色都可以设置成动态颜色,系统也有很多动态颜色,不过我们项目中一般都是UI给出的16进制颜色,我们一般是通过UIColor分类(或者新建一个获取颜色的类)来获取动态颜色,代码类似这样:

//MARK: -根据情况返回不同的颜色  每个动态颜色都调用这个方法获取
+ (UIColor *)generateDynamicColor:(UIColor *)lightColor darkColor:(UIColor *)darkColor {
    if (@available(iOS 13.0, *)) {
        UIColor *dyColor = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) {
            if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleLight) {
                return lightColor;
            }else {
                return darkColor;
            }
        }];
        return dyColor;
    } else {
        return lightColor;
    }
}

注意点:此时颜色基本已经解决,但是如果是CGColor则不同,Color我们设置过后,系统切换到暗黑模式后,会自动变为darkColor,但是CGColor仍然是单一颜色,我们需要在检测到系统模式变化时重新设置一遍(检测模式变化下面讲)

2、图片适配

图片适配参考上面链接

二、获取当前模式

参考上面链接

三、检测模式变化

可以在UIView、UIViewController以及其子类里面实现协议方法监测模式变化

//MARK: -检测模式变化
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
    [super traitCollectionDidChange:previousTraitCollection];
    ///增加处理代码
}

四、项目内设置模式开关(仿微信暗黑模式设置页面)

注意增加版本判断

1、不随系统变化,整个项目暗黑

self.view.window.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;

2、不随系统变化,整个项目亮色

self.view.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

3、跟随系统变化

self.view.window.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;

注意:如果自己手动设置,不随着系统变化,需要在设置时保存这个状态到本地,在启动时, 根据缓存的状态重新设置window的overrideUserInterfaceStyle

相关文章

  • 暗黑模式开发

    iOS13暗黑模式适配(项目开发版) iOS 13 DarkMode 暗黑模式 IOS 暗黑模式适配---基础适配

  • iOS 暗黑模式适配(项目实战篇)

    通过上面两篇文章iOS 暗黑模式适配(方法介绍篇)iOS 暗黑模式适配(叨叨篇)我们知道了暗黑模式怎么去适配,那么...

  • iOS 开发之关闭暗黑模式

    对于现在很多应用不想适配暗黑模式或者来不及适配的,可以关闭暗黑模式。 全局关闭暗黑模式: 在 Info.plist...

  • iOS 暗黑模式适配

    DarkModeAdapter 简介 iOS 暗黑模式适配懒人版 普通模式(light)下: 暗黑模式(dark)...

  • iOS:暗黑模式适配

    简介:iOS13苹果推出的暗黑模式,在去年苹果已经声明必须适配暗黑模式否则会下架。网上有很多好的文章来适配暗黑模式...

  • Xcode 升级11 适配 ⚠️记录~

    1、关闭暗黑模式 ,如果没有适配暗黑模式,在暗黑模式下会很丑 2、 报错 library not found fo...

  • 百度APP iOS暗黑模式适配的完美解决方案

    百度APP iOS暗黑模式适配的完美解决方案百度APP iOS暗黑模式适配的完美解决方案

  • uni-app做iOS的夜间模式

    iOS13适配暗黑模式/夜间模式/深色模式/暗黑主题(DarkMode)问题:1.监听Android深色或浅色模式...

  • ios13适配不断更新

    1. 暗黑模式 iOS13使用暗黑模式时,UIView默认背景色会变成暗黑色。适配暗黑模式的工作量较大,改为强制使...

  • iOS13 适配总结

    1. 暗黑模式 iOS13使用暗黑模式时,UIView默认背景色会变成暗黑色。适配暗黑模式的工作量较大,改为强制使...

网友评论

    本文标题:暗黑模式适配

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