在SwiftUI中,当处于亮模式时,如何以编程方式访问暗模式颜色,反之亦然?

在SwiftUI中,当处于亮模式时,如何以编程方式访问暗模式颜色,反之亦然?,swiftui,ios-darkmode,Swiftui,Ios Darkmode,accentColor可以有“任何外观”颜色和“深色外观”颜色。比方说,我处于亮模式,如何通过编程访问暗模式颜色而不手动将颜色模式设置为暗模式?您需要将命名颜色解析为暗样式的特征集合,如 .background( Color(UIColor(named: "testColor")?.resolvedColor(with: UITraitCollection(userInterfaceStyle: .dark)) ?? UIColor.darkText) )

accentColor
可以有“任何外观”颜色和“深色外观”颜色。比方说,我处于亮模式,如何通过编程访问暗模式颜色而不手动将颜色模式设置为暗模式?

您需要将命名颜色解析为暗样式的特征集合,如

.background(
   Color(UIColor(named: "testColor")?.resolvedColor(with: 
      UITraitCollection(userInterfaceStyle: .dark)) ?? UIColor.darkText)
)
使用Xcode 12.4/iOS 14.4进行测试


注意:调整到您的颜色名称和任何要展开的默认颜色(可选)

在SO中看起来不错,但是当我尝试时,我得到类型为“color”的
值没有成员“resolvedColor”
当我执行以下操作时:
导入SwiftUI扩展颜色{func-opposition(scheme:ColorScheme)->color{resolvedColor(with:UITraitCollection(userInterfaceStyle:.dark))}
解析颜色是
UIColor
的一种方法,不是
Color
,而是
Color
可以使用
UIColor
创建,如图所示。我的错误!谢谢。