Я пытаюсь создать поле text
, которое меняется на случайное с list
при нажатии button
. Все, что я действительно пытаюсь изменить, я background
color
, но затем я решил, что хочу вместо gradient
. Он работал нормально, когда у меня было colors
в backgrounds
list
, но теперь, когда я пытаюсь сделать gradient
var
, поэтому мне не нужно помещать каждый gradient
в list
, я продолжаю получать то же самое error
. Я пытался делать это разными способами и, похоже, все равно не могу заставить его работать. Я чувствую, что должен быть способ.
import SwiftUI
struct ContentView: View {
lazy var drinkGradient = [LinearGradient(gradient: Gradient(colors: [Color("drinkcard1"), Color("drinkcard2")]), startPoint: .bottom, endPoint: .top)]
lazy var truthGradient = [LinearGradient(gradient: Gradient(colors: [Color("truthcard"), Color("truthcard")]), startPoint: .bottom, endPoint: .top)]
lazy var dareGradient = [LinearGradient(gradient: Gradient(colors: [Color("darecard"), Color("darecard")]), startPoint: .bottom, endPoint: .top)]
@State private var backgrounds = [truthGradient[0], dareGradient[0], truthGradient[0], dareGradient[0], truthGradient[0], dareGradient[0], drinkGradient[0]]
@State private var text = [String("Truth"), String("Dare"), String("Truth"), String("Dare"), String("Truth"), String("Dare"), String("Drink!!")]
@State private var foregrounds = [Color.black, Color.white]
@State private var number = [0]
var body: some View {
ZStack{
//Background
Rectangle()
.foregroundColor(Color("background"))
.edgesIgnoringSafeArea(.all)
//All content
VStack {
//Banner
HStack {
Text("Truth, Dare or Drink")
.font(.largeTitle)
.foregroundColor(.white)
.padding(.bottom, 30)
.padding(.top, 80)
.frame(minWidth: 0, maxWidth: .infinity)
}
.frame(minWidth: 0, maxWidth: .infinity)
.edgesIgnoringSafeArea(.all)
.background(Color("banner"))
.shadow(radius: 20)
Spacer()
Text(text[number[0]])
.font(.title)
.foregroundColor(foregrounds[0])
.padding(.all, 75)
.background(backgrounds[number[0]])
.cornerRadius(15)
.shadow(radius: 10)
.padding(.all)
Button(action: {
self.number[0] = Int.random(in:
0...self.text.count - 1)
if self.number[0] == 0{
}
}) {
Text("Spin")
.font(.title)
.padding(.vertical, 15)
.padding(.horizontal, 80)
.foregroundColor(.black)
.background(Color("button"))
.cornerRadius(25)
.shadow(radius: 15)
.padding(.all)
}
Spacer()
}.edgesIgnoringSafeArea(.all)
}.edgesIgnoringSafeArea(.all)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}