在 swiftui 中使用 if else 自定义着色?
custom coloring with if else in swiftui?
我正在 SwiftUI 上制作地震应用程序。我收到的数据包括地震的震级,我希望打印在屏幕上的文本根据震级改变颜色。
比如我可以说:我希望它小于3显示绿色,3到5之间显示黄色,5到7之间显示红色,大于7显示黑色.
你能帮帮我吗?
谢谢
可以用ternary
运算符,小于3显示绿色,3~5之间显示黄色,5~7之间显示红色,大于7显示黑色。例如:
struct ContentView: View {
@State var quake = 2
var body: some View {
Text("quake in ")
.foregroundColor(quake < 3 ? .green
: quake <= 5 ? .yellow
: quake <= 7 ? .red
: .black)
}
}
有很多方法可以解决这个问题,我相信如果你知道如何做一个if-else语句,你可以自己做。由于您可能正在与 swift 或 swiftUI 本身
作斗争
这里有 3 种方法可以做到
首先是
struct ContentView: View {
@State var quake = 2
var body: some View {
if (quake < 3) {
Text("Earthquake")
.foregroundColor(.green)
} else if (quake <= 5) {
Text("Earthquake")
.foregroundColor(.yellow)
} else if // etc...
}
}
但效率很低,因此第二种解决方案是在前景色本身内迭代它
struct ContentView: View {
@State var quake = 2
var body: some View {
Text("Earthquake")
.foregroundColor(quake < 3 ? .green : quake <= 5 ? .yellow : // etc)
}
}
你所要做的就是把
condiditon ? if its true : if codition ? if it's true : if condition //etc untill else
基本一样
if condition then do something
else if condition
up untill
else
最后一个解决方案是创建一个 returns 关键的函数,我相信这个 beginner-friendly 比第二个
struct ContentView: View {
@State var quake = 2
private func getColor() -> Color {
if quake <= 3 {
return .green
} else if quake <= 5 {
return .yellow
}
return .black // default, random, you decide the last condition
}
var body: some View {
Text("Earthquake")
.foregroundColor(self.getColor())
}
}
我正在 SwiftUI 上制作地震应用程序。我收到的数据包括地震的震级,我希望打印在屏幕上的文本根据震级改变颜色。
比如我可以说:我希望它小于3显示绿色,3到5之间显示黄色,5到7之间显示红色,大于7显示黑色.
你能帮帮我吗?
谢谢
可以用ternary
运算符,小于3显示绿色,3~5之间显示黄色,5~7之间显示红色,大于7显示黑色。例如:
struct ContentView: View {
@State var quake = 2
var body: some View {
Text("quake in ")
.foregroundColor(quake < 3 ? .green
: quake <= 5 ? .yellow
: quake <= 7 ? .red
: .black)
}
}
有很多方法可以解决这个问题,我相信如果你知道如何做一个if-else语句,你可以自己做。由于您可能正在与 swift 或 swiftUI 本身
作斗争这里有 3 种方法可以做到 首先是
struct ContentView: View {
@State var quake = 2
var body: some View {
if (quake < 3) {
Text("Earthquake")
.foregroundColor(.green)
} else if (quake <= 5) {
Text("Earthquake")
.foregroundColor(.yellow)
} else if // etc...
}
}
但效率很低,因此第二种解决方案是在前景色本身内迭代它
struct ContentView: View {
@State var quake = 2
var body: some View {
Text("Earthquake")
.foregroundColor(quake < 3 ? .green : quake <= 5 ? .yellow : // etc)
}
}
你所要做的就是把
condiditon ? if its true : if codition ? if it's true : if condition //etc untill else
基本一样
if condition then do something
else if condition
up untill
else
最后一个解决方案是创建一个 returns 关键的函数,我相信这个 beginner-friendly 比第二个
struct ContentView: View {
@State var quake = 2
private func getColor() -> Color {
if quake <= 3 {
return .green
} else if quake <= 5 {
return .yellow
}
return .black // default, random, you decide the last condition
}
var body: some View {
Text("Earthquake")
.foregroundColor(self.getColor())
}
}