提问者:小点点

在不使用设备设置的情况下将应用程序设置为具有亮/暗模式


我正在开发一个iOS应用程序,在应用程序的设置内,我将允许用户有亮或暗模式。这款应用在默认情况下会是浅色模式,但如果用户将其改成暗色模式,它就会改变标签/背景/按钮等。

我计划通过将亮或暗模式存储在共享默认值中来实现这一点,当页面加载时,我将检查这一点。

如果是dark模式,我知道我可以在ViewDidLoad()中根据需要更改颜色,但这似乎是太多的工作。我这里有我需要的一套颜色:

我知道我可以把标签设置成这个特定的颜色,如果我想这样的话...

但我相信这是由设备级别的暗/亮模式设置控制的。如果有一种方法我可以创建一个模板来控制颜色?我确信我可以创建一个函数来调整所有东西的颜色,但必须为所有东西创建一个出口会随着时间的推移而变得混乱。

有什么提示吗?


共1个答案

匿名用户

我在IOS-13之前建立了一个明暗模式的应用程序,下面是我们使用的

  • 添加数吨出口并手动设置代码中的所有颜色。需要大量的工作,很容易错过一些东西
  • 使用UIAppeance代理更改默认UI元素的颜色。经常会有意外的副作用,需要大量的人工测试来消除不良情况

这两种选择都不太好。然而,如果你的iOS最低版本是13或更高,更好的选择是添加本地暗模式支持使用自适应和语义颜色。然后,您应该能够在应用程序中添加一个UI控件,该控件在每个视图或每个视图控制器的基础上设置overrideUserInterfaceStyle。