【问题标题】:How to set up a loop interval in Swift once a button is pressed?按下按钮后,如何在 Swift 中设置循环间隔?
【发布时间】:2018-06-21 03:20:17
【问题描述】:

我正在尝试为我的按钮设置一个循环间隔计时器,一旦它们被用户按下。例如,一旦按下“红色”交通信号灯,它将循环显示其余颜色(按顺序),每次 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
        }
    }
}

【问题讨论】:

    标签: swift loops nstimer nstimeinterval


    【解决方案1】:

    奥特莱斯:-

    @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
            }
        })
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 2015-07-19
      • 1970-01-01
      • 2014-07-13
      • 2012-07-14
      • 2020-06-01
      • 1970-01-01
      相关资源
      最近更新 更多