在Assets.xcassets
中,可以添加其他图像,这些图像将根据外观自动切换。这适用于静态图像,但我正在尝试弄清楚如何为下载的图像执行此操作。
有没有办法设置Image
on init 的暗模式版本,或者 SwiftUI 中有一个函数可以让您检测当前外观是否是暗的,以便可以提供不同的图像 URL?
在Assets.xcassets
中,可以添加其他图像,这些图像将根据外观自动切换。这适用于静态图像,但我正在尝试弄清楚如何为下载的图像执行此操作。
有没有办法设置Image
on init 的暗模式版本,或者 SwiftUI 中有一个函数可以让您检测当前外观是否是暗的,以便可以提供不同的图像 URL?
您可以@Environment(\.colorScheme) var colorScheme: ColorScheme
在任何视图中使用来了解设备是处于暗模式 ( .dark
) 还是亮模式 ( .light
)。使用该信息,您可以有条件地决定使用三元运算符轻松显示哪个图像。
例如,如果您有一个名为“lightImage”的图像用于亮模式,而“darkImage”则用于暗模式:
@Environment(\.colorScheme) var colorScheme: ColorScheme
var body: some View {
Button(action: {
foo()
}) {
Image(colorScheme == .light ? "lightImage" : "darkImage")
}
}
有一个@Environment
变数。
@Environment (\.colorScheme) var colorScheme:ColorScheme
以下是我使用它填充空矩形的方法:
Rectangle().fill(Color.fillColor(for: colorScheme))
如何检测暗模式
struct ContentView: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
Text(colorScheme == .dark ? "In dark mode" : "In light mode")
}
}
资料来源:https ://www.hackingwithswift.com/quick-start/swiftui/how-to-detect-dark-mode