我有一个NSTimer,它从2小时倒计时到0小时.

以下是我的一些代码:

var timer = NSTimer()
let timeInterval:NSTimeInterval = 0.5
let timerEnd:NSTimeInterval = 0.0
var timeCount:NSTimeInterval = 7200.0 // seconds or 2 hours

// TimeString Function

func timeString(time:NSTimeInterval) -> String {
    let minutes = Int(time) / 60
    let seconds = time - Double(minutes) * 60
    let secondsFraction = seconds - Double(Int(seconds))
    return String(format:"%02i:%02i.%01i",minutes,Int(seconds),Int(secondsFraction * 10.0))
}

计时器标签是:

TimerLabel.text = "Time: \(timeString(timeCount))"

但是,我的计时器标签显示为:

Time: 200:59.0

如何设置计时器标签的格式,使其如下所示:

Time: 01:59:59 // (which is hours:minutes:seconds)?

[请注意,我的倒计时计时器没有问题,我只需要知道如何使用TimeString函数更改时间格式.]

编辑:

例如:

let minutes = Int(time) / 60

给我200分钟.等

推荐答案

你的计算全错了.

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)

Swift相关问答推荐

通过withstickedContinuation传递通用类型T

多个提取来计算核心数据中的记录

在visionOS 1.0中已弃用';base Color';:请改用`Color`属性

如何强制创建新的UIViewControllerRenatable|更新Make UIViewController上的视图

如何在SwiftUI的文本视图中显示NSMutableAttributedString?

在 SwiftUI 视图中观察 UIViewRepresentable 的 @State var 变化

当模式以编程方式关闭时在父视图控制器中触发操作

如何使用Swift宏和@Observable和@Environment?

有没有一种方法可以访问封闭实例ObservableObject以从属性包装器中的任何位置调用objectWillChange.send()

使用泛型的 Swift 枚举值

将基于MyProtocol的泛型函数的参数更改为使用存在的any MyProtocol或some MyProtocol是否会受到惩罚?

将 struct 作为泛型类型传递并访问该泛型类型属性

创建 ViewModel 时 iOS 模拟器上的黑屏

单击按钮后的计时器发布者初始化计时器

SwiftUI 中的 .primary 和 .secondary colored颜色 是什么?

更新我的 pod 导致 GoogleDataTransport Umbrella 标头出现错误

Xcode 6 中的嵌入式内容包含 Swift 代码构建设置有什么作用?

使 struct 可散列?

快速覆盖属性

Swift :如何在一组字符之后得到所有东西