WatchKit 定时器结束时的函数
Posted
技术标签:
【中文标题】WatchKit 定时器结束时的函数【英文标题】:Function when WatchKit timer ends 【发布时间】:2017-08-12 09:22:31 【问题描述】:我有一个手表计时器, 但是,我不知道如何在计时器结束时执行通知或 segue 之类的操作。 有什么想法吗?
@IBOutlet var sceneTimer: WKInterfaceTimer!
override func awake(withContext context: Any?)
super.awake(withContext: context)
sceneTimer.setDate(NSDate(timeIntervalSinceNow :21) as Date)
override func willActivate()
super.willActivate()
sceneTimer.start()
override func didDeactivate()
super.didDeactivate()
是的,我对这一切都很陌生,所以它不是一个开创性的代码,请随时更正。
【问题讨论】:
【参考方案1】:我敢肯定,肯定有人可以改进这一点。但我构建了一个带有开始按钮、计时器和标签的小 watchOS 应用程序。根据需要连接您的WKInterfaceTimer
、WKInterfaceLabel
和Button
,此代码应该可以工作。也可以从GitHub下载项目。
var theTimer = Timer()
var backgroundTimer = TimeInterval(15)
@IBOutlet var appleTimer: WKInterfaceTimer!
@IBOutlet var label: WKInterfaceLabel!
override func willActivate()
// This method is called when watch view controller is about to be visible to user
super.willActivate()
appleTimer.setDate(Date(timeIntervalSinceNow: 15))
label.setText("")
@IBAction func startButton()
let startTime = Date(timeIntervalSinceNow: 15)
appleTimer.setDate(startTime)
appleTimer.start()
// This will call timerCountDown() once per second until conditions are met.
theTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerCountDown), userInfo: nil, repeats: true)
func timerCountDown()
backgroundTimer -= 1.0
print(backgroundTimer)
if backgroundTimer == 0
theTimer.invalidate()
appleTimer.stop()
// You could call an Alert Action here.
label.setText("Timer Done!")
【讨论】:
【参考方案2】:WKInterfaceTimer
只是一个标签,可以用来显示倒计时。一旦倒计时达到零,它就没有系统调用的关联函数。如果您需要知道倒计时何时到达 0,则需要配置具有相同目标日期的 Timer
对象。
【讨论】:
以上是关于WatchKit 定时器结束时的函数的主要内容,如果未能解决你的问题,请参考以下文章
求51单片机中,用C语言写的五个中断源的中断函数的书写规则,就是进入中断函数时的那个函数名,并说明...