ios - 从亮模式到暗模式的颜色变化在真实设备上的 SwiftUI 中不起作用
问题描述
使用 Swift5.3.2、iOS14.4.1、Xcode12.4、
在 SwiftUI 中从浅色模式切换到深色模式时,我尝试进行自定义颜色更改。
这是我的代码:
import SwiftUI
struct MyTestView : View {
var body: some View{
VStack {
Rectangle()
.foregroundColor(Color("loginBG"))
}
}
}
在我的MyTestView
应用程序生命周期开始时调用(真正简单的示例):
import SwiftUI
@main
struct myApp: App {
var body: some Scene {
WindowGroup {
MyTestView()
}
}
}
这是我的颜色定义loginBG
:
这是显示矩形不幸没有改变颜色的视频 - 为什么?????
(从状态栏颜色开关你可以看到我确实从浅色模式更改为深色模式并返回。但根本没有矩形颜色变化)
解决方案
您可以尝试使用以下代码:
import SwiftUI
struct MyTestView : View {
var body: some View{
VStack {
Rectangle()
.foregroundColor(Color(UIColor(named: "loginBG")))
}
}
}
替换Color("loginBG")
到Color(UIColor(named: "loginBG"))
这可以在真实设备上为我工作。
推荐阅读
- distributed-system - IPFS 公共网关(如 ipfs.io)如何获取简单 IPFS 节点的内容?
- spring-boot - 具有自定义配置的 Spring Boot 应用程序不会在服务器(WebSphere)启动时加载
- python - 尝试在 Pandas Dataframe 上执行 RobustScaler 时出现 SyntaxError
- swift - 使用 MaterialComponents 框架时出现“找不到图像”错误
- angular - ng update 不检查或更新@angular-devkit 包
- c - 为什么我会收到“浮点异常(核心转储)”?
- javascript - “this”在原生 JavaScript 数组方法中什么时候有用?
- php - Laravel \ Socialite \ Two \ InvalidStateException Facebook Socialite 中没有消息错误
- sandbox - 错误:未在此范围内声明“scmp_filter_ctx”
- error-handling - 无法在 IronPython 中捕获 .NET 错误