我有一个我已经开发的ios 10的测验应用程序,但我对编码很新。
在应用程序中,问题循环显示,您选择答案,然后在正确的答案按钮上显示颜色,并转到下一个问题,您必须按下另一个按钮。 我希望下一个问题在按下上一个答案1秒后自动出现。我该怎么做呢?
这是我目前的代码
func answerButtonHandler(_ sender: RoundedButton) {
timer.invalidate()
if sender.titleLabel?.text == currentQuestion.correctAnswer {
score += 1
questionLabel.text = currentQuestion.correctAnswer
questionButton.isEnabled = true
} else {
sender.backgroundColor = flatRed
questionLabel.text = currentQuestion.correctAnswer
questionButton.isEnabled = true
}
for button in answerButtons {
button.isEnabled = false
if button.titleLabel?.text == currentQuestion.correctAnswer {
button.backgroundColor = flatGreen
}
}
}
提前感谢您提供的任何指导。
答案 0 :(得分:1)
这可以使用以下代码在IOS中使用 Grand Central Dispatch :
Swift 3
let delay : Double = 1.0
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delay) {
// in here you can perform a code with delay
}
Swift 2
let seconds = 1.0
let delay = seconds * Double(NSEC_PER_SEC)
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
// in here you can perform a code with delay
})
您可以使用this了解详情。
答案 1 :(得分:0)
Timer.scheduledTimer(
timeInterval: 1.0,
target: self,
selector: #selector(myFunc),
userInfo: ["callback" : onSuccess],
repeats: false)
下次再询问之前......
答案 2 :(得分:0)
您可以将计时器设置为10秒,例如:
var counter = 10
var _ = Timer.scheduledTimer(timeInterval: 0.75, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true)
func updateCounter () {
if counter > 0 {
counter -= 1
} else {
//Do something
}