import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var button: UIButton!
var flag: Bool = true
var count: Int = 0
var timer: Timer?
//1:項目作成画面でルーレットの分割数と項目名を入力 分割数 = itemsの数 , 項目名が "野球","サッカー" に当たります。
//items[0] = "野球",items[1] = "サッカー" の様に先頭が0から自動で番号が割り振られます。
var items: [String] = ["野球","サッカー","バスケットボール"]
override func viewDidLoad() {
super.viewDidLoad()
label.text = items[0]
button.setTitle("Start", for: .normal)
changeLabel()
}
//startButtonTapedが、2:ルーレット画面で登録した内容が反映されているルーレットをスタートボタンで開始、ストップボタンでストップの処理を行います
@IBAction func startButtonTaped(_ sender: Any) {
if flag == true {
startTimer()
button.setTitle("Stop", for: .normal)
flag = false
}else if flag == false{
//3 当たった項目をラベルに表示 timerを止めた時 = changeLabelの処理が止まる。その時のitemsの値が表示される。
timer?.invalidate()
button.setTitle("Start", for: .normal)
flag = true
}
}
func startTimer(){
timer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(ViewController.changeLabel), userInfo: nil, repeats: true)
}
@objc func changeLabel(){
label.text = items[count]
count += 1
if count >= 3{
count = 0
}
}
}
イメージの物と違うかもしれませんが、簡単に書いてみました!
わからなければ、メソッドをコピーして検索すると出てきますよ!
(例)```timer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(ViewController.changeLabel), userInfo: nil, repeats: true)
の処理がわからなければ、 'Swift Timer 使い方' などとして調べると出てくると思います!!