我目前正在开发一个非常基本的测验应用程序。
用户可以选择4种选择。
如果按下正确的按钮,隐藏的标签(LabelEnd)将显示“正确”,并自动转到下一个随机问题。
如果他们按错了按钮,隐藏的标签将显示为“错误”并保持相同的问题。
我的问题是:如何在1秒后再次隐藏标签,无论它是正确还是错误?
func Hide() {
LabelEnd.hidden = true
}
func UnHide(){
LabelEnd.hidden = false
}
@IBAction func Button1Action(sender: AnyObject) {
UnHide()
if(CorrectAnswer == "1"){
LabelEnd.text = "Correct!"
RandomQuestions()
} else {
LabelEnd.text = "Wrong"
}
}
答案 0 :(得分:0)
您可以使用UIView animate方法,其持续时间可以设置间隔时间。
像这样:
UIView.animateWithDuration(0.1, animations: { () -> Void in
LabelEnd.hidden = false
})
答案 1 :(得分:0)
您可以在1秒后隐藏标签:
var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.LabelEnd.hidden = true
})
您可以根据需要更改时间。
你可以这样使用它:
func Hide() {
var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.LabelEnd.hidden = true
})
}
@IBAction func Button1Action(sender: AnyObject) {
UnHide()
if(CorrectAnswer == "1"){
LabelEnd.text = "Correct!"
Hide()
}
else{
LabelEnd.text = "Wrong"
Hide()
}
}
另一种方法是,您可以使用timer
,如下面的代码所示:
var timer = NSTimer()
func Hide() {
LabelEnd.hidden = true
timer.invalidate() //You can remove timer here.
}
func UnHide(){
LabelEnd.hidden = false
}
@IBAction func Button1Action(sender: AnyObject) {
UnHide()
if(CorrectAnswer == "1"){
LabelEnd.text = "Correct!"
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("Hide"), userInfo: nil, repeats: false)
}
else{
LabelEnd.text = "Wrong"
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("Hide"), userInfo: nil, repeats: false)
}
}