SwiftUI:在设备上测试时未检测到暗模式
SwiftUI: Dark mode not detected when testing on device
我正在尝试使用 SwiftUI 在我的 iOS 应用程序中实现暗模式:简单的测试是更改背景颜色。
我已经设置了我的颜色集,如下所示:
ContentView.swift:
import SwiftUI
struct ContentView : View {
@EnvironmentObject var session: SessionStore
func getUser () {
session.listen()
}
var body: some View {
Group {
if (session.session != nil) {
VStack {
WelcomeView()
.background(Color("bg"))
.edgesIgnoringSafeArea(.all)
}
} else {
VStack {
SigninView().transition(.move(edge: .bottom))
}.frame(maxHeight: .infinity)
.background(Color("bg"))
.edgesIgnoringSafeArea(.all)
}
}.animation(.spring())
.onAppear(perform: getUser)
}
}
这行不通。但是,当在 .onAppear
之后使用 .colorScheme(.dark)
强制暗模式时 - 它有效。
使用 @Environment (\.colorScheme) var colorScheme:ColorScheme
调试时 returns 浅色 ,即使我的 iPhone 设置为深色模式。
我是不是漏掉了什么?
我明白了。结果 用户界面样式 在我的 Info.plist 文件中被设置为 light
- 只需删除它。
目标 iOS 14.0
折腾了一天多,终于找到了解决办法。
如果它可以帮助那里的人..
我的应用程序需要在应用程序启动时获取系统 ColorScheme,然后由用户在应用程序设置中处理。有些视图专门强制为 .dark,有些则强制为 .light。
User Interface Style
未在 Info.plist 中设置,Appearance
也未设置。
同样的问题:@Environment (\.colorScheme) var colorScheme:ColorScheme
返回时总是很亮!我在做什么,或者在哪里检索到值..
在测试了所有互联网的解决方案后,这里是:
UITraitCollection.current.userInterfaceStyle
在我的案例中,这是获得正确 phone 暗模式设置的唯一方法。
希望它会避免在这上面浪费太多时间。
我正在尝试使用 SwiftUI 在我的 iOS 应用程序中实现暗模式:简单的测试是更改背景颜色。
我已经设置了我的颜色集,如下所示:
ContentView.swift:
import SwiftUI
struct ContentView : View {
@EnvironmentObject var session: SessionStore
func getUser () {
session.listen()
}
var body: some View {
Group {
if (session.session != nil) {
VStack {
WelcomeView()
.background(Color("bg"))
.edgesIgnoringSafeArea(.all)
}
} else {
VStack {
SigninView().transition(.move(edge: .bottom))
}.frame(maxHeight: .infinity)
.background(Color("bg"))
.edgesIgnoringSafeArea(.all)
}
}.animation(.spring())
.onAppear(perform: getUser)
}
}
这行不通。但是,当在 .onAppear
之后使用 .colorScheme(.dark)
强制暗模式时 - 它有效。
使用 @Environment (\.colorScheme) var colorScheme:ColorScheme
调试时 returns 浅色 ,即使我的 iPhone 设置为深色模式。
我是不是漏掉了什么?
我明白了。结果 用户界面样式 在我的 Info.plist 文件中被设置为 light
- 只需删除它。
目标 iOS 14.0
折腾了一天多,终于找到了解决办法。 如果它可以帮助那里的人..
我的应用程序需要在应用程序启动时获取系统 ColorScheme,然后由用户在应用程序设置中处理。有些视图专门强制为 .dark,有些则强制为 .light。
User Interface Style
未在 Info.plist 中设置,Appearance
也未设置。
同样的问题:@Environment (\.colorScheme) var colorScheme:ColorScheme
返回时总是很亮!我在做什么,或者在哪里检索到值..
在测试了所有互联网的解决方案后,这里是:
UITraitCollection.current.userInterfaceStyle
在我的案例中,这是获得正确 phone 暗模式设置的唯一方法。
希望它会避免在这上面浪费太多时间。