在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
创建,如图所示。我的错误!谢谢。