如何解决Swift / SwiftUI中除了深色模式和浅色模式之外的其他ColorScheme
我正在开发一个通常将在黑暗环境中使用的应用程序,并且显示器的光输出应降至最低。因此,我想与黑色背景和灰色文字形成低对比度。
如果有人在其他环境中使用该应用程序,则用户可能会考虑使用具有较高对比度的普通视图-例如普通的暗或亮模式。
当然,我可以将所有background
设置为黑色,将foregroundColor
设置为灰色,但这将需要大量代码才能使用户有可能改回常规的亮/暗模式。
我的方法是从{p>开始,将extension
写入ColorScheme
public extension ColorScheme {
static let evenDarker = ColorScheme.dark
}
并从那里调整颜色值。
在我的想象中,这应该创建了.dark
的副本。我可以打电话
let contentView = ContentView()
.environment(\.colorScheme,.evenDarker)
并且它的构建没有问题,不幸的是,它确实显示了系统设置(在设备上定义),而不是暗模式的副本。使用.dark
或.light
调用同一视图会覆盖系统设置。
此外,我在ColorScheme中找不到任何可能值的列表或文档-例如如何将默认的背景颜色从灰色覆盖为黑色。 有没有人得到这个或类似的东西上班?
解决方法
同时,我找到了一个解决第一个问题的解决方案: 使用
SQL.AddParam("@FromDate",FromDate + 1)
和
public extension UIUserInterfaceStyle {
static let evenDarker = UIUserInterfaceStyle.dark }
效果更好,它将window.overrideUserInterfaceStyle = .evenDarker
复制到.dark
-与使用ContentView()的环境设置不同,它还可以选择使用.evenDarker
-如果用户需要使用系统设置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。