如何获得 SwiftUI 颜色的明暗模式版本?

Posted

技术标签:

【中文标题】如何获得 SwiftUI 颜色的明暗模式版本?【英文标题】:How to get the light or dark mode version of a SwiftUI Color? 【发布时间】:2021-07-14 00:42:23 【问题描述】:

如何在 SwiftUI 中创建一个具有深色模式颜色的局部变量。 我试图避免将每个视图的配色方案指定为暗色以获得暗模式颜色。

例如在 UIKit 中,我可以使用此代码获取暗模式颜色

let traitCollection = UITraitCollection(userInterfaceStyle: .dark)
let darkModeBlueUIColor = UIColor.systemBlue.resolvedColor(with: traitCollection)

我知道我可以从 UIColor 转换,但我只想使用 SwiftUI 指定它,以便它适用于所有平台。

let darkModeBlueSwiftuiColor = Color(darkModeBlueUIColor)

我想做这样的涉及辅助函数的事情

let darkModeBlueColor = Color.blue.darkModeColor

【问题讨论】:

【参考方案1】:

要为特定颜色模式绘制颜色,只需在视图主体中使用它

    Color("testColor")
        .colorScheme(.dark)   // << this !!

如果你使用颜色变量也可以这样做。

【讨论】:

以上是关于如何获得 SwiftUI 颜色的明暗模式版本?的主要内容,如果未能解决你的问题,请参考以下文章

利用伪元素单个颜色实现 hover 和 active 时的明暗变化效果

如何在 iOS 中检查暗模式? [复制]

获取明暗模式主题更改的更新

在 iOS 13 中停止更改状态栏

『PhotoShop』背景知识介绍

如何使用我的应用程序中使用的自定义颜色轻松支持明暗模式?