如果秒= = 60,为什么我的分钟不会改变

时间:2017-08-16 10:11:46

标签: ios swift

因此我正在使用具有分钟和秒的倒计时手表以及滑块来更改其值。如果秒= = 60,我想把我的分钟加1。但它不会工作。请帮忙。

import UIKit

class ViewController: UIViewController {

var seconds = 59
var minute = 0

@IBOutlet weak var label: UILabel!

@IBOutlet weak var sliderOutlet: UISlider!
@IBAction func slider(sender: UISlider) {

    seconds = Int(sender.value)

    minute = Int(sender.value)


    if seconds == 60 {

        minute = minute + 1
        seconds = 0

    }



    label.text = String(minute) + " Minute :" + String(seconds) + " Seconds"

}

4 个答案:

答案 0 :(得分:1)

只需删除将秒数更改为分钟的逻辑并使用此代码 -

var dateFormatter = DateComponentsFormatter()
dateFormatter.allowedUnits = ([.minute, .second])
dateFormatter.unitsStyle = .full
label1.text = dateFormatter.string(from: 105)

输出 -

1分45秒

答案 1 :(得分:0)

从代码中,你猜测这行是多余的:

minute = Int(sender.value)

考虑将其删除。

顺便问一下,究竟什么都行不通?目前的行为是什么?

答案 2 :(得分:0)

刚刚改变你的逻辑:

    @IBAction func slider(sender: UISlider) {

    seconds = Int(sender.value)

    minute = seconds/60

    label.text = String(minute) + " Minute :" + String(seconds-(minute*60)) + " Seconds"

}

答案 3 :(得分:0)

试试这个

@IBAction func slider(sender: UISlider) {

let currentSec = Int(sender.value)
minute = currentSec/60
seconds = currentSec%60

label.text = String(minute) + " Minute :" + String(seconds) + " Seconds"

}