当前位置: 首页 > 知识库问答 >
问题:

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

卫飞
2023-03-14

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

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

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

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

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

有什么提示吗?

共有1个答案

汪思博
2023-03-14

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

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

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

 类似资料:
  • 问题内容: 我想在不使用设置器的情况下将值插入变量。如果有可能怎么办。 这是一个例子 现在我有一个包含,和的函数。 我试图使用一种通用方法将值设置为Object(objectOfClass),而值我已经在相应的variable()中通过了()。 问题答案: 此代码未经测试。你可以试试看 要导入的类 方法

  • 设置应用程序 Nest is built with features from both ES6 and ES7 (decorators, async / await). It means, that the easiest way to start adventure with it is to use Babel or TypeScript. In this tutorial I will u

  • 你可以查看或更改 Navicat Monitor 的应用程序设置,例如端口、网站网址和 IP 地址。若要配置应用程序设置,请前往“配置”->“应用程序设置”。 这里列出了 Navicat Monitor 的应用程序设置。你可以编辑以下设置: 端口 Navicat Monitor 将侦听的端口号。 网站网址 将用于警报电子邮件内的 Navicat Monitor 网站网址。 IP 地址 如果机器已被

  • 按照quickstart指南,我创建了Project,Enterprise和Policy。停留在设备配置阶段。 设备详细信息:Minix X68i,Android 6.0.1[根] 注意:设备上没有安装向导的欢迎屏幕 我甚至尝试手动启动,设备会显示“哎呀!”

  • 我需要在代理后面使用Java以编程方式运行Jmeter。问题在于我需要使用HTTPS。 我已在以下网站阅读了手册:http://jmeter.apache.org/usermanual/get-started.html我已经使用Jmeter几个月了,感觉很舒服,但问题是在我需要切换到HTTPS时开始的。 我试过以下方法:(分别和一起) 添加了带有代理服务器详细信息的HTTP请求默认配置 将代理服务

  • 我也尝试过这个其他的解决方案。