我想在一段时间后更改UILabel的文本。但是在设定的时间后文本没有改变。我该如何解决这个问题?
看我的代码:
var countDownText = "hello"
override func didMoveToView(view: SKView) {
startButton = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 90))
startButton.text = "\(countDownText)"
startButton.center = CGPointMake(view.frame.size.width / 2, view.frame.size.height/2)
startButton.textColor = UIColor.darkGrayColor()
startButton.font = UIFont(name: "Arial", size: 20)
startButton.textAlignment = NSTextAlignment.Center
self.view?.addSubview(startButton)
countDownTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("countDownFunc"), userInfo: nil, repeats: true)
}
func countDownFunc(){
theTime++
if(theTime >= 4){
countDownText = "testText"
}
if(theTime >= 8){
spawnEnemys()
startButton.removeFromSuperview()
countDownTimer.invalidate()
}
print(theTime)
}
提前感谢您的所有帮助:D
答案 0 :(得分:3)
您的countDownFunc
应该是:
func countDownFunc(){
theTime++
if(theTime >= 4){
countDownText = "testText"
startButton.text = countDownText
}
if(theTime >= 8){
spawnEnemys()
startButton.removeFromSuperview()
countDownTimer.invalidate()
}
print(theTime)
}
答案 1 :(得分:2)
您的代码存在设计缺陷。
您更改分配给视图控制器的countDownText
属性的字符串,但这也不会更改标签的当前文本。
这是一个简单的游乐场示例来说明问题:
import UIKit
var str = "Hello, playground"
var label = UILabel()
label.text = str
str = "Goodbye, playground"
print(label.text) // "Hello, playground"
如果您还想更新标签的文本,则需要更新其文本属性,类似于您最初的操作:
startButton.text = "\(countDownText)"
这将更新标签的文本以匹配countDownText
属性的新值。