我想用我的步进器给计时器增加分钟数。默认情况下,步进器输出+或-1,然后我使用*60表示一分钟,但这使我的计时器显示计时器中的总秒数而不是分钟数。例如,按它两次读取的时间是120而不是02:00,我该如何转换它?
@IBAction func restStepperValueChanged(_ sender: UIStepper) {
numberOfRestLabel.text = Int(sender.value).description
restCount = Int(sender.value)*60
restRemainingCountdownLabel.text = String(restCount)
}发布于 2016-11-11 00:41:07
这?
let seconds = restCount % 60
let minutes = (restCount / 60) % 60
let result = "\(minutes):\(seconds)"
print(result)发布于 2016-11-11 00:43:31
restCount包含此处设置的秒数:
restCount = Int(sender.value)*60
例如:
如果sender.value =1,则Int(1)*60 == 1*60 == 60
如果sender.value =2,则Int(2)*60 == 2*60 == 120
这意味着此行设置的是秒数,而不是分钟数:
restRemainingCountdownLabel.text = String(restCount)
要获得02:00格式的时间,您需要使用格式说明符手动构造一个字符串:
String(format: "%02d:%02d", minutesValue, secondsValue)
一个解释:
String(format:)根据给定的格式字符串构造一个字符串。这里的格式字符串是"%02d:%02d"。%d是整数值的格式说明符,将其修改为%02d将指定两位数字,可选的前导为零。例如'01‘或'12’。我们使用此格式说明符两次,并在它们之间放置一个冒号。然后传入第一和第二格式说明符的整数值。
https://stackoverflow.com/questions/40532552
复制相似问题