iOS开发高级分享 - 兼容暗模式

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

file

苹果今年早些时候宣布在iOS上使用“暗模式”,该模式为用户提供了选择系统范围内的浅色或深色外观的选项。它从iOS 13开始可用。但是,如果您对iOS的采用率不满意,仍然需要支持旧版本的iOS。在本文中,我们来看看如何介绍适用于所有iOS版本(包括iOS 13)的黑暗模式。

先决条件

应该指出的是,采用暗模式(或暗主题)并不是一件容易的事,因为乍一看。因此,在继续前进之前,需要进行一些准备。在UI代码中引入一些结构并定义应用程序范围的调色板,字体,UI元素样式等是有意义的。

我建议您观看WWDC 上有关在iOS上实现暗模式的话题,并查看文档以概述此功能以及UIKit中引入的相关更改。NSHipster上还发布了有关如何使您的应用程序为黑暗模式做好准备的很好的指南。

iOS 13之前的黑暗模式

我们应该做的第一件事就是声明一个主题类型。它定义了一种可以应用于整个应用程序的样式,并指定了每个视图的外观细节。该Theme结构包含一个嵌套的Type枚举和两个存储主题类型和调色板的属性:

file

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

file

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值