按下按钮后,如何在Swift中设置循环间隔?

按下按钮后,如何在Swift中设置循环间隔?,swift,loops,nstimer,nstimeinterval,Swift,Loops,Nstimer,Nstimeinterval,我正在尝试设置一个循环间隔计时器,一旦用户按下按钮,就可以设置循环间隔计时器。例如,一旦按下“红色”交通信号灯,它将按顺序在其余颜色之间循环5秒 import UIKit class ViewController: UIViewController { var timer : Timer? func redButton() { timer = Timer.scheduledTimer(timeInterval: 5, target: self, selecto

我正在尝试设置一个循环间隔计时器,一旦用户按下按钮,就可以设置循环间隔计时器。例如,一旦按下“红色”交通信号灯,它将按顺序在其余颜色之间循环5秒

import UIKit

class ViewController: UIViewController {
    var timer : Timer?

    func redButton() {
        timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: Selector(("redButton")), userInfo: nil, repeats: true)
    }

    func redButton() {
    }

    var lightRed = true;
    var lightYellow = true;
    var lightGreen = true;

    @IBOutlet weak var stopLabel: UILabel!

    @IBAction func redButton(_ sender: Any) {
        //TODO: Show text information when 'stop' button is clicked
        stopLabel.text = "Red means stop! Do not proceed forward."
        lightRed = !lightRed
        if lightRed {
            view.backgroundColor = .white
        } else {
            view.backgroundColor = .red
        }
    }

    @IBOutlet weak var waitLabel: UILabel!

    @IBAction func yellowButton(_ sender: Any) {
        //TODO: Show text information when 'slow' button is clicked
        waitLabel.text = "Yellow means wait, or slow down, as it is about to turn red!"
        lightYellow = !lightYellow
        if lightYellow {
            view.backgroundColor = .white
        } else {
            view.backgroundColor = .yellow
        }
    }

    @IBOutlet weak var goLabel: UILabel!

    @IBAction func greenButton(_ sender: Any) {
        //TODO: Show text information when 'go' button is clicked
        goLabel.text = "Green means go! Now is the time to proceed forward"
        lightGreen = !lightGreen
        if lightGreen {
            view.backgroundColor = .white
        } else {
            view.backgroundColor = .green
        }
    }
}

Outles:-

@IBOutlet weak var viewGreen: UIView!
@IBOutlet weak var viewYellow: UIView!
@IBOutlet weak var viewRed: UIView!
@IBOutlet weak var btnStart: UIButton!

var timer : Timer?
var isRed = true
var isYellow = false
var isGreen = false
@IBAction func btnStart(_ sender: UIButton) {

    self.viewRed.backgroundColor = .red
    self.viewYellow.backgroundColor = .white
    self.viewGreen.backgroundColor = .white

    self.isRed = false
    self.isYellow = true
    self.isGreen = false

    timer = Timer.scheduledTimer(withTimeInterval: 5, repeats: true, block: { (timer) in

        if self.isRed {
            self.viewRed.backgroundColor = .red
            self.viewYellow.backgroundColor = .white
            self.viewGreen.backgroundColor = .white

            self.isRed = false
            self.isYellow = true
            self.isGreen = false
        } else if self.isYellow {
            self.viewRed.backgroundColor = .white
            self.viewYellow.backgroundColor = .yellow
            self.viewGreen.backgroundColor = .white

            self.isRed = false
            self.isYellow = false
            self.isGreen = true
        } else if self.isGreen {
            self.viewRed.backgroundColor = .white
            self.viewYellow.backgroundColor = .white
            self.viewGreen.backgroundColor = .green

            self.isRed = true
            self.isYellow = false
            self.isGreen = false
        }
    })
}
启动按钮动作:-

@IBOutlet weak var viewGreen: UIView!
@IBOutlet weak var viewYellow: UIView!
@IBOutlet weak var viewRed: UIView!
@IBOutlet weak var btnStart: UIButton!

var timer : Timer?
var isRed = true
var isYellow = false
var isGreen = false
@IBAction func btnStart(_ sender: UIButton) {

    self.viewRed.backgroundColor = .red
    self.viewYellow.backgroundColor = .white
    self.viewGreen.backgroundColor = .white

    self.isRed = false
    self.isYellow = true
    self.isGreen = false

    timer = Timer.scheduledTimer(withTimeInterval: 5, repeats: true, block: { (timer) in

        if self.isRed {
            self.viewRed.backgroundColor = .red
            self.viewYellow.backgroundColor = .white
            self.viewGreen.backgroundColor = .white

            self.isRed = false
            self.isYellow = true
            self.isGreen = false
        } else if self.isYellow {
            self.viewRed.backgroundColor = .white
            self.viewYellow.backgroundColor = .yellow
            self.viewGreen.backgroundColor = .white

            self.isRed = false
            self.isYellow = false
            self.isGreen = true
        } else if self.isGreen {
            self.viewRed.backgroundColor = .white
            self.viewYellow.backgroundColor = .white
            self.viewGreen.backgroundColor = .green

            self.isRed = true
            self.isYellow = false
            self.isGreen = false
        }
    })
}