如何在 SWIFTUI 正文视图中使用声明的变量
Posted
技术标签:
【中文标题】如何在 SWIFTUI 正文视图中使用声明的变量【英文标题】:how can I use a declared variable inside SWIFTUI body view 【发布时间】:2020-01-24 08:05:34 【问题描述】:我不能在正文视图中使用我声明的变量。如果我使用
.fill(colorWheel["darkOrange"])
在 Ellipse 内部,它会中断,但如果我更改为 .fill(Color.orange)
,这是一个系统颜色,那就没问题了。
struct ContentView: View
//our color palette
var colorWheel : [String: Color] = [
"darkOrange" : Color.init(hex: "F1615D"),
"mediumOrange" : Color.init(hex: "FF8761"),
"darkYellow" : Color.init(hex: "FFC575"),
"lightYellow" : Color.init(hex: "F1FAC6"),
"brightAqua" : Color.init(hex: "79E6E3"),
"lightAqua" : Color.init(hex: "a8e6cf"),
"limeGreen" : Color.init(hex: "dcedc1"),
"brightPeach" : Color.init(hex: "ff8b94"),
"mediumPeach" : Color.init(hex: "ffaaa5"),
"lightPeach" : Color.init(hex: "ffd3b6"),
]
var body: some View
ZStack
VStack
AnimatedContentView()
Spacer()
ZStack
Ellipse()
.fill(colorWheel["darkOrange"])
.frame(width: 300, height: 150)
Text("Glad you are here.\n Animate this")
.animation(.spring())
.foregroundColor(Color.white)
.font(.system(size: 28))
.rotationEffect(.degrees(-24))
.foregroundColor(Color.black.opacity(0.7))
.edgesIgnoringSafeArea(.all)
//end zStack
【问题讨论】:
【参考方案1】:试试这个。
.fill(self.colorWheel["darkOrange"] ?? Color.green)
如果没有颜色,请将 Color.green 替换为您想要应用的默认颜色。
【讨论】:
以上是关于如何在 SWIFTUI 正文视图中使用声明的变量的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 如何在修改来自同一结构的状态变量时避免刷新列表
是否所有 @Published 变量都需要在 SwiftUI 的视图模型中具有初始值?