A-A+

iOS适配暗黑模式

2020年09月06日 iOS原创文章 暂无评论
博客主机

暗黑模式适配

2020年4月苹果审核需要对提交的版本适配暗黑模式,此消息一出就吓了我一身冷汗,翻阅了很多资料去查询怎么适配暗黑模式类似的帖子,然而没有搜索到太多有价值的文章。 经研究决定设计小姐姐出了一套暗黑模式的设计图,看到设计的一刻让我感觉到了暗黑模式没有想象中的那么可怕,我也先给你同行们先吃一刻定心丸。 现在为了上架你可能是暂时关闭了暗黑模式 1、暂时全局关闭暗黑模式: 在 Info.plist 文件中,添加 key 为 User Interface Style,类型为 String,value 设置为 Light !2、强制关闭暗黑模式

if defined(IPHONE_13_0) && IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0

if(@available(iOS 13.0,*)){
    self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
#endif
适配暗黑需要UIColor 添加几个分类方法
  • (UIColor )tab_getColorWithLightColor:(UIColor )lightColor darkColor:(UIColor _Nullable)darkColor { if (@available(iOS 13.0, )) { return [UIColor colorWithDynamicProvider:^UIColor _Nonnull(UITraitCollection _Nonnull traitCollection) { if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { return darkColor; }else { return lightColor; } }]; } else { return lightColor; } }
  • (BOOL)isStyleDark{ if (@available(iOS 13.0, *)) { return UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark; } return NO; }
  • (UIColor )tab_normalDynamicBackgroundColor { if (@available(iOS 13.0, )) { return [UIColor tab_getColorWithLightColor:UIColor.whiteColor darkColor:UIColor.systemBackgroundColor];}else { return [UIColor tab_getColorWithLightColor:UIColor.whiteColor darkColor:nil]; } } 这是主要的适配暗黑的方法,你还可以像我一样再写几个主题色的分类方法,比如: ```objective-c复制代码
  • (UIColor *)themeTitleColor{ return [UIColor tab_getColorWithLightColor:kTextColorTitle darkColor:kTextColorTitleDark]; }
  • (UIColor *)subheadTitleColor{ return [UIColor tab_getColorWithLightColor:kTextColorSubhead darkColor:kTextColorSubheadDark]; }
  • (UIColor *)secondBackgroundColor{ return [UIColor tab_getColorWithLightColor:[UIColor whiteColor] darkColor:kColorSecondDark]; }
  • (UIColor *)lineColor{ return [UIColor tab_getColorWithLightColor:kColorSeparatorLine darkColor:kColorLineDark]; } 这样代码模块就完成了,在使用Color的地方选择性的使用刚才写好的分类方法 还有最后一步,就是在需要两套图片的地方的选择,如图所示复制代码

这是两套颜色鲜明的图片的配置如果一开始没有配置是显示None选择第二个选项就可以了 大概的适配就是这样,可能还需要对wkwebview的适配,后面如果有需要我会补发,祝君适配愉快!

给我留言

Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录