在倒数计时器(swift3)之前添加倒数计时器

时间:2017-05-22 02:32:18

标签: ios if-statement timer swift3 countdown

在我的代码中,如果你按下startButton倒计时从60 - 0开始。我想做的就是从3 - 0开始倒计时,然后倒计时从60 - 0开始。想想它的标记,设置,然后开始倒数计时器从60秒到0。

 import UIKit
class ViewController: UIViewController {

@IBOutlet weak var startButton: UIButton!
@IBOutlet weak var timerLabel: UILabel!

var seconds = 60
var timer = Timer()
var isTimerRunning = false
var resumeTapped = false

@IBAction func startButtonTapped(_ sender: UIButton) {
    if isTimerRunning == false {
        runTimer()
        self.startButton.isEnabled = false
    }
}

func runTimer() {
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(ViewController.updateTimer)), userInfo: nil, repeats: true)
    isTimerRunning = true

}
@IBAction func resetButtonTapped(_ sender: UIButton) {
    timer.invalidate()
    seconds = 60
    timerLabel.text = timeString(time: TimeInterval(seconds))
    isTimerRunning = false

}

//MARK: - Public Method
func updateTimer(){
    if seconds < 1 {
        timer.invalidate()
        //Send alert to indicate time's up.
    } else {
        seconds -= 1
        timerLabel.text = timeString(time: TimeInterval(seconds))
    }
}

func timeString(time:TimeInterval) -> String {
    let hours = Int(time) / 3600
    let minutes = Int(time) / 60 % 60
    let seconds = Int(time) % 60
    return String(format:"%02i:%02i:%02i", hours, minutes, seconds)
    }}

1 个答案:

答案 0 :(得分:0)

嗯,在我们开始尝试连锁计时器之前,也许我们可以只使用一个和显示它就好像它是两个,一个接一个......

现在你的第一个计时器从3开始,第二个计时器从60,3开始小于60 ......

也许我们可以在64时启动计时器,但显示时间为剩余时间(时间,61),剩余时间为3,2,1,0,60,59,...... / p>

Swift中的剩余是%

类似于:

  • 以64
  • 开始时间
  • timeString的参数名称更改为actualTime
  • 添加let time = actualTime % 61作为第一行。

BTW:常量60在代码中出现两次,考虑使用let常量并使用它来重置变量。为倒计时前等引入类似的常量

HTH