ios - SwiftUI:在设备上测试时未检测到深色模式

标签 ios swift swiftui ios-darkmode

我正在尝试使用 SwiftUI 在我的 iOS 应用程序中实现深色模式:简单的测试是更改背景颜色。

我已经设置了颜色集,如下所示: Colour Set in Assets

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 进行调试时,即使我的 iPhone 设置为深色模式,它也会返回 light

我错过了什么吗?

最佳答案

我明白了。结果我的 Info.plist 文件中的用户界面样式被设置为light - 只需将其删除即可。

User Interface Style

关于ios - SwiftUI:在设备上测试时未检测到深色模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59845579/

相关文章:

ios - 如何在设置动态值后将数据保存到 ios 中的 plist 中?

ios - 隐藏标签之前,UIView 动画未完成

javascript - SwiftUI:在 macOS 上与 WKWebView 的 Javascript 通信

swiftui - 导航后退按钮上的文本 - SwiftUI

objective-c - tabBarController 和第一个 Tab viewDidLoad

iphone - 如何更改分段控件字体和选定的分段颜色?

ios - 节点在 Sprite 套件中快速从屏幕上产生

macos - MacOS 上 SwiftUI 中的按钮问题

ios - 电影/GIF 背景 iOS 应用

ios - 查看 subview 不可见