Random 如何随机更改圆的颜色?
我开始尝试SwiftUI。我想圆圈是随机改变颜色从红色或绿色Random 如何随机更改圆的颜色?,random,view,swiftui,Random,View,Swiftui,我开始尝试SwiftUI。我想圆圈是随机改变颜色从红色或绿色 struct ContentView: View { @State var colorCircle = [".red", ".green"] var body: some View { ZStack { Circle() .fill(Color.colorCircle.randomElement())
struct ContentView: View {
@State var colorCircle = [".red", ".green"]
var body: some View {
ZStack {
Circle()
.fill(Color.colorCircle.randomElement())
.frame(width: 100,
height: 100)
.position(x: 250,
y: 320)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
首先,将
colorcle
数组设置为包含颜色而不是字符串
还要注意,您正试图从Color
结构内部访问colorcle
:
Color.colorCircle.randomElement()
正如您在ContentView
中声明的colorCircle
一样,您可以像这样使用它:
self.colorCircle.randomElement()
或(较短):
然后可以使用随机元素
:
struct ContentView: View {
@State var colorCircle: [Color] = [.red, .green]
var body: some View {
ZStack {
Circle()
.fill(colorCircle.randomElement()!)
.frame(width: 100,
height: 100)
.position(x: 250,
y: 320)
}
}
}
请注意,randomElement()
返回一个可选值,因此如果确定数组不是空的,可以强制展开(!
)
但是,作为一种良好的做法,我建议不要使用代码>并尽可能提供默认值:
.fill(colorCircle.randomElement() ?? .red)
struct ContentView: View {
@State var colorCircle: [Color] = [.red, .green]
var body: some View {
ZStack {
Circle()
.fill(colorCircle.randomElement()!)
.frame(width: 100,
height: 100)
.position(x: 250,
y: 320)
}
}
}
.fill(colorCircle.randomElement() ?? .red)