Random 如何随机更改圆的颜色?

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())

我开始尝试SwiftUI。我想圆圈是随机改变颜色从红色或绿色

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)