现在我的应用程序有一个在几秒钟内运行的计时器。我希望代码能够像这样工作。当计时器达到10秒时,显示图像A
,否则显示图像B
。
if green {
timer.invalidate()
startStop.isEnabled = true
scoreTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.updateScoreTime), userInfo: nil, repeats: true)
}
答案 0 :(得分:3)
设置imageA
。使用计划的计时器在10秒内设置imageB
:
imageView.image = imageA
Timer.scheduledTimer(withTimeInterval: 10, repeats: false) { _ in
imageView.image = imageB
}
注意:只在iOS 10及更高版本上使用带有块的Timer
。如果您支持较旧的iOS版本,则需要使用带有选择器的版本。
如果每秒调用updateScoreTime
例程并执行更多只管理图像的例程,则可以保留属性中秒数的计数:
imageView.image = imageA
scoreTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateScoreTime), userInfo: nil, repeats: true)
count = 0
当计时器弹出时:
func updateScoreTime(_ timer: Timer) {
// update score time
...
// change picture if >= 10 seconds
count += 1
if count >= 10 {
imageView.image = imageB
}
}