iOS系统暗黑模式

系统暗黑模式:

暗黑模式颜色适配:

方式1: Assets配置:在Assets中配置好颜色后,可以通过+colorNamed: 放大获取到动态颜色。

方式2:代码配置,通过代码+colorWithDynamicProvider:

可以看出来生成的颜色为UIDynamicProviderColor, 系统使用类簇隐藏了真正的颜色实现。

当用户选择的暗黑模式时,会触发block调用,重新返回对应的颜色值,下次渲染的时候返回的就是更新的颜色值。

暗黑模式图片适配:

方式1:Assets配置:支持Any,Light,Dark三套图,在暗黑模式下,优先选择Dark;找不到会使用Any。

show in finder 找到对应的图片配置json,可以看到不同模式下对应的不同文件名。

方式2:代码配置: 通过代码也可以设置2个图片关联普通模式和暗黑模式。

协议方法回调

对于页面上的其他元素,系统提供了主题变化的回调,在vc中实现此协议方法即可接受回调。

单个界面不遵循暗黑模式

UIViewController与UIView 都新增一个属性 overrideUserInterfaceStyle。

将 overrideUserInterfaceStyle 设置为对应的模式,则强制限制该元素与其子元素以设置的模式进行展示,不跟随系统模式改变进行改变。

  • 设置 ViewController 的该属性, 将会影响视图控制器的视图和子视图控制器采用该样式。
  • 设置 View 的该属性, 将会影响视图及其所有子视图采用该样式。
  • 设置 Window 的该属性, 将会影响窗口中的所有内容都采用样式,包括根视图控制器和在该窗口中显示内容的所有演示控制器(UIPresentationController)。

系统的暗黑模式对于颜色和图片替换支持很好,视图元素不需要重新设置,即可随系统变化自动切换;对于其他元素内容改变也提供协议方法触发回调,做更细化的调整。

总结系统的暗黑模式的主要功能,

  • 对颜色和图片做资源映射
  • 在修改暗黑模式时触发热切换
  • 支持按页面和单个view维度进行单独设置。

系统暗黑模式:

iOS 13.0 暗黑模式的适配_ios 暗黑模式适配-CSDN博客

iOS 13适配------暗黑模式_ios 暗黑模式实时监听_番薯大佬的博客-CSDN博客

相关推荐
纪念 2291 小时前
C++ 算法(模拟)
开发语言·c++·算法
niucloud-admin1 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:评价列表
开发语言·php
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 项目:需求分析与滑动数据设计
java·开发语言·交友
gz927cool2 小时前
Python 全栈应用最佳实践完整指南
开发语言·python·ai
2501_916007472 小时前
Windows OpenSSL 生成 iOS 证书,制作 p12 与描述文件,KXBuild 签名实操
windows·vscode·ios·objective-c·个人开发·swift·敏捷流程
CoderYanger2 小时前
Java EE 进阶:5. Spring IoC&DI(第三弹):Spring DI
java·开发语言·spring boot·spring·面试·java-ee·mvc
AIFQuant2 小时前
Python期货行情API接入:股指、黄金、原油多品种数据管道实战
开发语言·python·金融·区块链·量化开发
echome8882 小时前
JavaScript async/await 错误处理:别让 Promise 静默失败
开发语言·前端·javascript·promise
运维行者_2 小时前
供应链安全成最大风险源,企业如何构建可控的运维体系?
运维·开发语言·网络·数据库·安全·云计算·流量监控
.YM.Z2 小时前
优选算法——【双指针算法2】C++实现
开发语言·c++·算法