美文网首页
iOS开发中适配iOS13新增的暗黑模式

iOS开发中适配iOS13新增的暗黑模式

作者: MQ_sunboy | 来源:发表于2020-08-14 14:42 被阅读0次

1.颜色的适配

问题:

iOS13下公司App某些页面显示情况:

0.暗黑.png

这是在暗黑模式下显示的情况,出现这种情况是因为该页面的tableview和Cell都没有设置背景色,导致系统自动按照系统的显示外观对页面颜色进行了设置。

禁用App的暗黑模式

由于我们没有对iOS13新增的暗黑模式进行适配,我们可以禁用App的暗黑模式。

在info.plist文件中增加User Interface Style并设置为Light。

0.禁用.png

禁用App某些页面的暗黑模式

如果我们对App某些页面适配了暗黑模式,有些页面还没来得及适配,我们可以对某些页面禁用暗黑模式。

self.view.overrideUserInterfaceStyle=UIUserInterfaceStyleLight;

适配颜色

iOS13设置颜色增加了方法

/* Create a dynamic color with a provider.

* When methods are called on this color that need color component values,

* the provider is called with UITraitCollection.currentTraitCollection.

* The provider should use that trait collection to decide a more fundamental UIColor to return.

* As much as possible, use the given trait collection to make that decision, not other state.

*/+(UIColor *)colorWithDynamicProvider:(UIColor *(^)(UITraitCollection    *traitCollection))dynamicProvider API_AVAILABLE(ios(13.0),tvos(13.0))API_UNAVAILABLE(watchos);-(UIColor *)initWithDynamicProvider:(UIColor *(^)(UITraitCollection *traitCollection))dynamicProvider API_AVAILABLE(ios(13.0),tvos(13.0))API_UNAVAILABLE(watchos);

我们可以通过block回调判断当前的模式,然后设置不同模式下的颜色。

// 颜色适配if(@available(iOS13.0,*)){self.view.backgroundColor=[UIColor colorWithDynamicProvider:^UIColor*_Nonnull(UITraitCollection*_Nonnull traitCollection){if(traitCollection.userInterfaceStyle==UIUserInterfaceStyleDark){return[UIColor blackColor];// 暗黑模式下的颜色}else{return[UIColor whiteColor];// 非暗黑模式下的颜色}}];}

UIUserInterfaceStyle是一个枚举,有暗黑模式和浅色模式。

typedefNS_ENUM(NSInteger,UIUserInterfaceStyle){UIUserInterfaceStyleUnspecified,UIUserInterfaceStyleLight,UIUserInterfaceStyleDark,}API_AVAILABLE(tvos(10.0))API_AVAILABLE(ios(12.0))API_UNAVAILABLE(watchos);

2.图片的适配

0.图片.png

我们可以选择Appearances为Any,Dark,这样就会出现两组图片,我们可以设置暗黑模式下的图片和非暗黑模式下的图片

作者:梁森的简书

链接:https://www.jianshu.com/p/ab2a84e87807

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • 暗黑模式开发

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

  • iOS13 暗黑模式适配

    iOS13 暗黑模式适配,代码设置主题模式. AppDelegate中设置主题模式 UINavigationCon...

  • 如何关闭iOS 13之后的暗黑模式?

    iOS13之后苹果推出暗黑模式,但是实际开发很多项目不要求或者强制适配暗黑模式,直接在infoplist 文件添加...

  • ios 关闭暗黑模式

    iOS13之后苹果推出暗黑模式,但是实际开发很多项目不要求或者强制适配暗黑模式,直接在infoplist 文件添加...

  • iOS高德地图适配暗黑模式

    iOS13以后iOS开发者讨论最大的应该就是暗黑模式了,我自己最近也在加班加点地为公司所有iOS项目适配暗黑模式,...

  • 自己适配iOS13解决的问题总结

    自己适配iOS13解决的问题总结 1.暗黑模式Dark Mode iOS 13 推出暗黑模式,UIView默认背景...

  • uni-app做iOS的夜间模式

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

  • iOS:暗黑模式适配

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

  • iOS开发中适配iOS13新增的暗黑模式

    1.颜色的适配 问题: iOS13下公司App某些页面显示情况: 0.暗黑.png 这是在暗黑模式下显示的情况,出...

  • ios13适配不断更新

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

网友评论

      本文标题:iOS开发中适配iOS13新增的暗黑模式

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