在SwiftUI中,可以将日期传递给Text()
,然后使用style
参数将其格式化为计时器。然而,像这样的倒计时永远不会停止,它只是在零之后不断递增。如何使它停止在0?
func nextRollTime(in seconds: Int) -> Date {
let date = Calendar.current.date(byAdding: .second, value: seconds, to: Date())
return date ?? Date()
}
字符串
上面是我用来开始倒计时的函数,然后我按如下方式传递它:Text(nextRollTime(in: 20), style: .timer)
个
2条答案
按热度按时间uwopmtnx1#
这里是一个可能的方法的演示-因为
.timer
从现在开始永远运行(根据设计),想法是一旦指定的时间段结束,就用常规文本替换它。使用Xcode 12 b3/ iOS 14进行测试。
x1c 0d1x的数据
字符串
nnt7mjpx2#
iOS16+ / macOS 13+
Text
现在有一个专用的初始化器init(timerInterval:pauseTime:countsDown:showsHours:)
。你可以这样使用它:
字符串