Можно ли сделать оператор if, если элемент списка равен определенному числу в swift? - PullRequest
0 голосов
/ 16 марта 2020

Я работал над приложением «Правда или вызов», в котором вы вращаете колесо, и вы случайно получаете правду или вызов, и я хочу, чтобы в случайном порядке database были сохранены несколько случайных вопросов и вызовов.

Я настроил его так, что когда вы нажимаете вращение button, он случайным образом выбирает правду или выходит из array. Я попробовал это немного и не мог заставить его работать. поэтому мой вопрос: возможно ли сделать что-то вроде if self.number[0] == 0 || 2 || 3{ (this is where it would get the random truth)} else{(this is where it would get the random dare)}

Я не знаю, поможет ли это, но это остальная часть моего кода.

import SwiftUI
import CoreHaptics



class Colors{
    static var drinkGradient = [LinearGradient(gradient: Gradient(colors: [Color("drinkcard"), Color("drinkcard2"), Color("drinkcard")]), startPoint: .top, endPoint: .bottom)]
    static var truthGradient = [LinearGradient(gradient: Gradient(colors: [Color("truthcard"), Color("truthcard"), Color("truthcard")]), startPoint: .top, endPoint: .bottom)]
    static var dareGradient = [LinearGradient(gradient: Gradient(colors: [Color("darecard"), Color("darecard"), Color("darecard")]), startPoint: .top, endPoint: .bottom)]
}

struct ContentView: View {



    @State private var timer:Timer!
    @State private var text = [String("Truth"), String("Dare"), String("Truth"), String("Dare"), String("Truth"), String("Dare"), String("Drink!!")]
    @State private var foregrounds = [Color.white, Color.white, Color.white, Color.white, Color.white, Color.white, Color.black]
    @State private var number = [0]
    @State private var timeKeeper: Float = 0
    @State private var angle: Double = 0
    let generator = UINotificationFeedbackGenerator()
    @State var backgrounds = [Colors.truthGradient[0], Colors.dareGradient[0], Colors.truthGradient[0], Colors.dareGradient[0], Colors.truthGradient[0], Colors.dareGradient[0], Colors.drinkGradient[0]]
    var body: some View {

        ZStack{
            Rectangle()
                .foregroundColor(Color("background"))
                .edgesIgnoringSafeArea(.all)
            VStack{
                HStack {
                    Text("Truth, Dare or Drink")
                        .shadow(radius: 10)
                        .padding(.top, 20)
                        .foregroundColor(.white)
                        .font(.system(.largeTitle, design: .rounded) )
                        .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 100)
                        .background(Color("banner"))
                        .edgesIgnoringSafeArea(.top)
                        .shadow(radius: 15)
                }


                Text("This is where the Truth or dare will go.")
                    .frame(width: 350, height: 200)
                    .foregroundColor(.white)
                    .font(.system(.headline, design: .rounded))

                Spacer()

                Text(text[number[0]])
                    .font(.system(.largeTitle, design: .rounded))
                    .foregroundColor(foregrounds[number[0]])
                    .frame(width: 250, height: 250)
                    .background(backgrounds[number[0]])
                    .clipShape(RoundedRectangle(cornerRadius: 15, style: .continuous))
                    .shadow(radius: 10)
                    .rotationEffect(.degrees(angle))
                    .animation(.easeIn)

                Spacer()

                Button(action: {
                    self.timer = Timer.scheduledTimer(withTimeInterval: 0.10, repeats: true, block: {_ in

                        self.timeKeeper += 0.10
                        if self.timeKeeper < 3{
                            if self.number[0] == self.text.count - 1{
                                self.number[0] = 0
                                self.angle += 360
                                let impactHeavy = UIImpactFeedbackGenerator(style: .heavy)
                                impactHeavy.impactOccurred()
                            }
                            else{
                                self.number[0] += 1
                                self.angle += 360
                                let impactHeavy = UIImpactFeedbackGenerator(style: .heavy)
                                impactHeavy.impactOccurred()
                            }
                        }
                        else{
                            self.number[0] = Int.random(in:
                                0...self.text.count - 1)
                            let impactHeavy = UIImpactFeedbackGenerator(style: .heavy)
                            impactHeavy.impactOccurred()
                            self.angle += 360
                            self.timeKeeper = 0
                            self.timer.invalidate()
                        }
                    })
                }) {
                    Text("Spin")
                        .font(.system(.title, design: .rounded))
                        .foregroundColor(.white)
                        .frame(width: 250, height: 50)
                        .background(Color("button"))
                        .clipShape(RoundedRectangle(cornerRadius: 15, style: .continuous))
                        .shadow(radius: 15)
                }
                Spacer()
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

1 Ответ

0 голосов
/ 16 марта 2020
if (self.number[0] == 0 || self.number[0] == 2 || self.number[0] == 3) {
   print("truth")
} else {
   print("dare")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...