Swift3 IOS从指定的数字开始计算分钟数

Swift3 IOS从指定的数字开始计算分钟数,swift3,xcode8,Swift3,Xcode8,在我的足球秒表中,我试图让我的计数器在触摸SecondHalf Clicked时从45:00开始计时,但我想不通,我尝试在触摸计时器时将分钟数设置为45:00,但计数器仍然从00:00开始计时。有人能给我建议吗? 提前谢谢 @IBAction func firstHalfClicked(_ sender: UIButton) { if startStopWatch == true { timerStart() startStopWatch = false

在我的足球秒表中,我试图让我的计数器在触摸SecondHalf Clicked时从45:00开始计时,但我想不通,我尝试在触摸计时器时将分钟数设置为45:00,但计数器仍然从00:00开始计时。有人能给我建议吗? 提前谢谢

@IBAction func firstHalfClicked(_ sender: UIButton) {

    if startStopWatch == true {
        timerStart()
        startStopWatch = false
        seconds = 0
        minutes = 0

    }
}

 @IBAction func endFirstHalfClicked(_ sender: UIButton) {

    if startStopWatch == false {
        timer.invalidate()
        startStopWatch = true
        seconds = 0
        minutes = 45
        stopwatchLabel.text = "45:00"
    }
}

@IBAction func secondHalfClicked(_ sender: UIButton) {

    if startStopWatch == true {
        timerStart()
        seconds = 0
        minutes = 45
        startStopWatch = false
        tempTimelineLbl.text = "2nd Half Underway"
    }
}

    @IBAction func endSecondHalfClicked(_ sender: UIButton) {

        if startStopWatch == false {
            timer.invalidate()
            startStopWatch = true
            seconds = 0
            minutes = 0
            stopwatchLabel.text = "90:00"
            tempTimelineLbl.text = "Full Time"
        }
    }

func timerStart() {

    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(StopWatchVC.updateStopwatch), userInfo: nil, repeats: true)
}

func updateStopwatch() {

    let stopWatchString = stopwatch.elapsedTimeSinceStart()
    stopwatchLabel.text = stopWatchString
 }


class Stopwatch {

    var startTime:Date?

    func startTimer() {
        startTime = Date();
    }

    func elapsedTimeSinceStart() -> String {
        var elapsed = 0.0;
        if let elapsedTime = startTime {
            elapsed = elapsedTime.timeIntervalSinceNow
        }
        elapsed = -elapsed
        let minutes = Int(floor((elapsed / 60)));
        let seconds = Int(floor((elapsed.truncatingRemainder(dividingBy: 60))));
        let timeString = String(format: "%02d:%02d", minutes, seconds)
        return timeString
    }
}

设法这样分类

我的班级

func elapsedTimeSinceStart() -> String {
        var elapsed = 0.0;
        if let elapsedTime = startTime {
            if firstHalfTime {
                elapsed = elapsedTime.timeIntervalSinceNow
            } else {
               elapsed = elapsedTime.timeIntervalSinceNow - 45*60
            }
        }
        elapsed = -elapsed
        let minutes = Int(floor((elapsed / 60)));
        let seconds = Int(floor((elapsed.truncatingRemainder(dividingBy: 60))));
//        print(elapsed)
        let timeString = String(format: "%02d:%02d", minutes, seconds)
//        print(timeString)
        return timeString
然后是我的孩子

@IBAction func firstHalfClicked(_ sender: UIButton) {

        if startStopWatch == true {
            timerStart()
            firstHalfTime = true

@IBAction func secondHalfClicked(_ sender: UIButton) {

        if startStopWatch == true {
            timerStart()
            firstHalfTime = false
创建了一个全局变量

var firstHalfTime = true

我看到您将
minutes
设置为45,但我看不出您在哪里使用它。我以为是我在使用它,在哪里可以实现45分钟开始?我想这就是我一直在努力解决的问题,我的意思是你在哪里用它来计数或显示。