如何在 XCode 8 swift 中禁用某个功能
How can i disable a function, in XCode 8 swift
所以我制作了一个测验应用程序,当用户完成 10 个问题时,它会隐藏按钮并显示一个按钮以转到下一个问题。我最近给它添加了一个倒数计时器并且它可以工作但是当他们完成测试时计时器会继续并且我想找到一种方法在他们完成测验时禁用它。因此,当他们已经完成时,他们不会被带到重试页面。希望它有意义!
更新计时器代码
internal func updateTimer()
{
counter = counter - 1
if(counter > 0)
{
ibCounter.text = String(counter)
}else{
self.performSegue(withIdentifier: "Segue13", sender: nil)
}
}
定时器代码。
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(cricketTest1View.updateTimer), userInfo: nil, repeats: true)
这是我在用户完成测验时输入代码的部分
func PickQuestion(){
if Questions.count > 0{
QNumber = 0
QuestionLabel.text = Questions[QNumber].Question
AnswerNumber = Questions[QNumber].Answer
for i in 0..<Buttons.count{
Buttons[i].setTitle(Questions[QNumber].Answers[i], for: UIControlState())
}
Questions.remove(at: QNumber)
}
else{
QuestionLabel.text = "YOU HAVE COMPLETED THE QUIZ"
Button1.isHidden = true
Button2.isHidden = true
Button3.isHidden = true
Button4.isHidden = true
NextQuiz.isHidden = false
Start.isHidden = true
ibCounter.isHidden = true
}
}
完成测验后使用 timer.invalidate()
。
它应该根据您的代码放在您的其他部分。
在这些表示测验已完成的行下方,您想停止计时器:
QuestionLabel.text = "YOU HAVE COMPLETED THE QUIZ"
Button1.isHidden = true
Button2.isHidden = true
Button3.isHidden = true
Button4.isHidden = true
NextQuiz.isHidden = false
Start.isHidden = true
ibCounter.isHidden = true
如果你查看 Timer 的 docs, you will find a method called invalidate
:
Stops the timer from ever firing again and requests its removal from its run loop.
这正是您需要调用的方法:
timer.invalidate()
所以我制作了一个测验应用程序,当用户完成 10 个问题时,它会隐藏按钮并显示一个按钮以转到下一个问题。我最近给它添加了一个倒数计时器并且它可以工作但是当他们完成测试时计时器会继续并且我想找到一种方法在他们完成测验时禁用它。因此,当他们已经完成时,他们不会被带到重试页面。希望它有意义!
更新计时器代码
internal func updateTimer()
{
counter = counter - 1
if(counter > 0)
{
ibCounter.text = String(counter)
}else{
self.performSegue(withIdentifier: "Segue13", sender: nil)
}
}
定时器代码。
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(cricketTest1View.updateTimer), userInfo: nil, repeats: true)
这是我在用户完成测验时输入代码的部分
func PickQuestion(){
if Questions.count > 0{
QNumber = 0
QuestionLabel.text = Questions[QNumber].Question
AnswerNumber = Questions[QNumber].Answer
for i in 0..<Buttons.count{
Buttons[i].setTitle(Questions[QNumber].Answers[i], for: UIControlState())
}
Questions.remove(at: QNumber)
}
else{
QuestionLabel.text = "YOU HAVE COMPLETED THE QUIZ"
Button1.isHidden = true
Button2.isHidden = true
Button3.isHidden = true
Button4.isHidden = true
NextQuiz.isHidden = false
Start.isHidden = true
ibCounter.isHidden = true
}
}
完成测验后使用 timer.invalidate()
。
它应该根据您的代码放在您的其他部分。
在这些表示测验已完成的行下方,您想停止计时器:
QuestionLabel.text = "YOU HAVE COMPLETED THE QUIZ"
Button1.isHidden = true
Button2.isHidden = true
Button3.isHidden = true
Button4.isHidden = true
NextQuiz.isHidden = false
Start.isHidden = true
ibCounter.isHidden = true
如果你查看 Timer 的 docs, you will find a method called invalidate
:
Stops the timer from ever firing again and requests its removal from its run loop.
这正是您需要调用的方法:
timer.invalidate()