gpt4 book ai didi

ios - 倒数计时器代码放置在哪里?

转载 作者:行者123 更新时间:2023-11-30 12:17:09 24 4
gpt4 key购买 nike

我正在开发一个 iOS 测验应用程序,每次提出问题时我都希望启动 15 秒的倒计时器。如果在计数器归零时用户没有回答问题,则认为答案是错误的。我的问题是,我应该在哪里放置倒计时器代码,以确保每次提出问题时都给用户 15 秒的时间来回答?我还希望每次提出新问题时都重置这个时间。

我的代码:

class ViewController: UIViewController {
//countdown timer
@IBOutlet weak var questionTimer: UILabel!

func randomQuestion() {
//random question
if questionList.isEmpty {
questionList = Array(QADictionary.keys)
}

let rand = Int(arc4random_uniform(UInt32(questionList.count)))
questionLabel.text = questionList[rand]

//matching answer values to go with question keys
var choices = QADictionary[questionList[rand]]!

questionList.remove(at: rand)

//create button
var button:UIButton = UIButton()

//variables
var x = 1
rightAnswerBox = arc4random_uniform(4)+1

for index in 1...4
{
button = view.viewWithTag(index) as! UIButton

if (index == Int(rightAnswerBox))
{
button.setTitle(choices[0], for: .normal)
}
else {
button.setTitle(choices[x], for: .normal)
x += 1
}

randomImage()

}
}

let QADictionary = ["Who is Thor's brother?" : ["Atum", "Loki", "Red Norvell", "Kevin Masterson"], "What is the name of Thor's hammer?" : ["Mjolinr", "Uru", "Stormbreaker", "Thundara"], "Who is the father of Thor?" : ["Odin", "Sif", "Heimdall", "Balder"]]

//wrong view segue
func wrongSeg() {
performSegue(withIdentifier: "wrongViewSegue", sender: self)
}

//proceed screen
func rightSeg() {
performSegue(withIdentifier: "rightSeg", sender: self)
}

//variables
var rightAnswerBox:UInt32 = 0
var index = 0

//Question Label
@IBOutlet weak var questionLabel: UILabel!

//Answer Button
@IBAction func buttonAction(_ sender: AnyObject) {
if (sender.tag == Int(rightAnswerBox))
{
print ("Correct!")
}
else if (sender.tag != Int(rightAnswerBox)) {
wrongSeg()
print ("Wrong!")
questionList = []
}

randomQuestion()
}

override func viewDidAppear(_ animated: Bool)
{
randomQuestion()
}

//variables
var seconds = 15
var timer = Timer()

override func viewDidLoad() {
super.viewDidLoad()
}

最佳答案

这应该为您提供一些基本构建 block 来构建您的解决方案。

// Timer property
var timer: Timer?


// Call this when a new question is loaded
func startTimer() {

self.timer?.invalidate()

self.timer = Timer.scheduledTimer(withTimeInterval: 15.0,
repeats: false,
block: { timer in

// Put whatever code should happen if the user does not answer the question in time.

})
RunLoop.main.add(timer,
forMode: .commonModes)

}

// Call this when a question has been answered
func questionAnswered() {

self.timer?.invalidate()

// Put whatever should happen if a question was answered in time here

}

关于ios - 倒数计时器代码放置在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com