Swift5中如何根据系统背景颜色选择颜色?
How to chose Color depending on System Background Color in Swift 5?
我目前正在与 SwiftUI Colors
合作。
问题: 我有一个 Card Component
,其背景颜色为 systemGray6
。这适用于大多数视图 (所有具有 systemBackground
背景颜色的视图).
但是,我有一些 Modal Views
随附 tertiarySystemBackground
。这不会更改 LightMode
中的任何内容,但会将 DarkMode
中的背景颜色更改为与 systemGray6
相同。结果,背景和卡片颜色相同,卡片不再可见。
我目前的解决方案:
struct Card: View {
var isInsideModal: Bool = false
var body: some View {
// Some Content
.background(isInsideModal ? Color.systemGray6 : Color.systemGray5) // I added this in an Extension of Color
}
}
问题: 是否可以自动执行此行为,而不必始终明确地将所需的 Background Color
传递给 Card View
?
感谢您的帮助。
您可以在 xcassets 文件夹中创建颜色集。它使您能够根据您的应用程序是在深色模式还是浅色模式下运行来选择不同的外观。
我目前正在与 SwiftUI Colors
合作。
问题: 我有一个 Card Component
,其背景颜色为 systemGray6
。这适用于大多数视图 (所有具有 systemBackground
背景颜色的视图).
但是,我有一些 Modal Views
随附 tertiarySystemBackground
。这不会更改 LightMode
中的任何内容,但会将 DarkMode
中的背景颜色更改为与 systemGray6
相同。结果,背景和卡片颜色相同,卡片不再可见。
我目前的解决方案:
struct Card: View {
var isInsideModal: Bool = false
var body: some View {
// Some Content
.background(isInsideModal ? Color.systemGray6 : Color.systemGray5) // I added this in an Extension of Color
}
}
问题: 是否可以自动执行此行为,而不必始终明确地将所需的 Background Color
传递给 Card View
?
感谢您的帮助。
您可以在 xcassets 文件夹中创建颜色集。它使您能够根据您的应用程序是在深色模式还是浅色模式下运行来选择不同的外观。