
苹果今年早些时候宣布在iOS上使用“暗模式”,该模式为用户提供了选择系统范围内的浅色或深色外观的选项。它从iOS 13开始可用。但是,如果您对iOS的采用率不满意,仍然需要支持旧版本的iOS。在本文中,我们来看看如何介绍适用于所有iOS版本(包括iOS 13)的黑暗模式。
先决条件
应该指出的是,采用暗模式(或暗主题)并不是一件容易的事,因为乍一看。因此,在继续前进之前,需要进行一些准备。在UI代码中引入一些结构并定义应用程序范围的调色板,字体,UI元素样式等是有意义的。
我建议您观看WWDC 上有关在iOS上实现暗模式的话题,并查看文档以概述此功能以及UIKit中引入的相关更改。NSHipster上还发布了有关如何使您的应用程序为黑暗模式做好准备的很好的指南。
iOS 13之前的黑暗模式
我们应该做的第一件事就是声明一个主题类型。它定义了一种可以应用于整个应用程序的样式,并指定了每个视图的外观细节。该Theme结构包含一个嵌套的Type枚举和两个存储主题类型和调色板的属性:

假设我们在项目中定义了一个调色板。然后,我们可以创建明暗主题:

接下来,我们将需要一种跟踪当前应用程序主题并提供订阅当前主题更改的方法。为此,我们将声明一个ThemeProvider类,该类将当前主题存储在中UserDefaults,保留主题观察者NSHas

本文探讨了如何在iOS 13及更低版本上实现暗模式。介绍了在iOS 13之前通过自定义主题和调色板手动支持暗模式,以及在iOS 13中利用系统动态颜色和资产目录实现自动适配。建议开发者关注WWDC相关话题和NSHipster指南,以确保应用程序在不同iOS版本上兼容暗模式。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



