iOS13引入了暗黑模式(Dark Appearance)。

模拟器设置暗黑模式:在“设置”-“开发者”中打开“Dark Appearance”。

真机设置暗黑模式:在“设置”-“显示与亮度”中设置外观为深色。

在 iOS 13 中,我们可以通过 UITraitCollection 来判断当前系统的外观模式。UIView 和 UIViewController 、UIScreen、UIWindow 都已经遵从了UITraitEnvironment这个协议,因此这些类都拥有一个叫做 traitCollection的属性,在这些类中,我们可以这样去判断当前 App 的外观模式:

BOOL isDark = (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark);

另外,我们还可以通过 UITraitCollection.current这个属性来获取当前 App 的外观模式。但是并不是所有的时候获取的都是正确的,只有在下面这些方法中,才可以放心的使用这个属性:

  • UIView:

draw(), layoutSubview(), traitCollectionDidChange(), tintColorDidChange()

  • UIViewController:

viewWillLayoutSubviews(), viewDidLayoutSubviews(), traitCollectionDidChange()

  • UIPresentationController:

containerViewWillLayoutSubviews(), containerViewDidLayoutSubviews(), traitCollectionDidChange()

如果应用不想适配暗黑模式,可以先暂时全局关闭暗黑模式:
在 Info.plist 文件中,添加 key 为 User Interface Style,类型为 String,value 设置为 Light即可。

或者直接修改info.plist源文件

<key>UIUserInterfaceStyle</key>
<string>Light</string>

在 iOS 13中,UIView、UIViewController 、UIWindow 有了一个 overrideUserInterfaceStyle的新属性,可以覆盖系统的外观模式。

单个页面或视图关闭暗黑模式,设置 overrideUserInterfaceStyle 为对应的模式,强制限制该视图与其子视图以设置的模式进行展示,不跟随系统模式改变进行改变。

self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

如果你希望一个子视图监听系统的模式,请将 overrideUserInterfaceStyle 属性设置为UIUserInterfaceStyleUnspecified。

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

图片适配暗黑模式:

在Images.xcassets中点击图片,选择右边的Image Set,设置Appearances为“Any,Dark”,即可兼容暗黑模式,可以分别设置暗黑模式和正常模式的图片。

iOS 13 以下的系统会默认取Any状态下的设定,iOS 13 会根据系统外观模式取Any或Dark下的设定。

iOS13的暗黑模式相关推荐

  1. JXTheme:iOS9+换肤/暗黑模式最佳方案之一,轻量级、高度自定义、swift编写

    简介 2018年苹果在macOS系统引入了暗黑模式,一经推出广受好评.尤其是我们程序员,经常与代码.文本打交道,亮色风格的界面看久了,眼睛会特别累.有了暗黑模式之后,我们的眼睛终于能被温柔对待了.而且 ...

  2. (0105)iOS开发之iOS13 暗黑模式(Dark Mode)适配

    导读: Material Design & iOS 13 黑暗模式总结探索 暗黑模式苹果开发文档 如何不进行系统切换样式的适配 注意 同一工程内多个Assets文件在打包后,就会生成一个Ass ...

  3. uniapp和5+app适配苹果iOS13暗黑模式教程

    iOS13开始苹果引入了暗黑模式(DarkMode),在黑暗模式下,系统界面配色都会相应变暗,同时App也需要进行适配. HBuilderX2.6.3+版本开始支持对暗黑模式的适配处理. 全局开启暗黑 ...

  4. iOS开发之iOS13 暗黑模式(Dark Mode)适配

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/shifang07/article/de ...

  5. iOS13适配之暗黑模式(Dark Mode)

    如果是老项目,改动太多,不想适配暗黑模式的话,有个偷懒的方法.或者还没适配完又不想给用户看,可以先暂时全局关闭暗黑模式:在 Info.plist 文件中,添加 key 为 User Interface ...

  6. 苹果暗黑模式_苹果正式推送iOS13.4、iPadOS更新,微信安卓版暗黑模式来了,手机淘宝出现弹窗Bug,柔宇第二代折叠屏手机发布...

    大家好 今天是3月25日 一起来看看今天的科技大新闻 苹果正式推送iOS13.4.iPadOS 更新支持触控板操作 (新浪科技)北京时间3月25日凌晨,苹果公司正式推送了iOS 13.4.iPadOS ...

  7. iOS13 不使用暗黑模式

    网上google搜到的, 关于"不使用暗黑模式"的解决办法都是: 这是写法确实是有效的,但是上传appstore提交审核,会报错App Store Connect Operatio ...

  8. chrome切换前端模式_H5暗黑模式在京东收银台中的实践

    背景 暗黑主题下,用户可以选择采用深色的系统范围外观而不是浅色外观.在暗黑模式下,系统对所有窗口,视图,菜单和控件采用较暗的调色板.谷歌的 Gmail 和 Chrome 浏览器.聊天工具 slack. ...

  9. 苹果暗黑模式_【蜜茶原创】微信最终妥协苹果,暗黑模式正式上线!

    哈喽大家好,海浪老师来啦! 前段时间因为适配的问题,微信被苹果要求必须在限期内适配深色模式,不然App Store会对微信进行下架处理的消息让广大网友炸开了锅. 就在昨天上午,iOS 微信终于发布了新 ...

最新文章

  1. 图文解说nginx中server的匹配顺序
  2. [unreal4入门系列之五] 熟悉关卡编辑器界面
  3. hbase源码系列(五)Trie单词查找树
  4. python try 异常处理 史上最全
  5. codevs 1907 方格取数 3
  6. 关于生命周期函数dealloc的使用小结
  7. Oracle JOB的建立,定时执行任务
  8. HTML5查看CAD图纸,看cad图纸软件(DwgSee)怎么打印Cad图纸?
  9. win10找回windows照片查看器的方法
  10. 机器学习笔记——乳腺癌鸢尾花分类问题详解(没有直接调包)
  11. 番茄助手功能及快捷键
  12. openpose的搭建
  13. 英特尔提供 Loihi 2 神经形态芯片和软件框架
  14. 高三计算机教学总结,2021年高三信息技术教学工作总结范文.doc
  15. Java 求一个数的立方根
  16. 风力发电控制系统的matlab,基于MATLAB的风力发电系统设计ppt课件
  17. 六大搜索引擎的中英文网站提交入口
  18. 带你认识什么是BMS(电池管理系统)
  19. R1_LiceCap动态图片GIF录制软件
  20. 数字心理学测试软件,数字心理学——简化问题的工具

热门文章

  1. PPPoE协议交互过程
  2. 选购硬盘HDD、SSD、SSHD、IDE、SATA、SCSI、SAS、PCIe、M.2、USB
  3. Android模仿新浪微博(自定义ListView下拉刷新)
  4. 烤星 DeFi 课堂 | 去中心化交易所适合小白用吗?
  5. 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建
  6. 失败魔咒下的企业海外并购(ZT)
  7. 引擎磨合 (Break In) 的秘密
  8. 爱奇艺自研DRM技术斩获国家级专利奖 持续为内容创作者提供更高等级版权保护...
  9. 学习matlab(六)——微分和积分
  10. 苹果 Apple Beta 版软件计划 相关软件地址