0
我有一個執行基本倒計時的定時器循環,它將值打印到控制檯。我試圖將該值設置爲標籤的文本值。即使Xcode控制檯顯示計時器值的正確倒計時,應用程序中的標籤仍然顯示0.有關爲何發生這種情況的任何想法?以下是相關代碼:標籤沒有顯示Swift中定時器的值
import UIKit
class GameViewController: UIViewController {
@IBOutlet weak var timerLabel: UILabel!
var timerCount = 7
var timerRunning = false
var timer = NSTimer()
override func viewDidLoad() {
super.viewDidLoad()
self.timerCount = 7
self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("Counting"), userInfo: nil, repeats: true)
}
func Counting(){
timerCount = 7
do {
println(timerCount)
timerRunning = true
--timerCount
timerLabel.text = "\(timerCount)"
println(timerCount)
} while timerCount > 0
}
這工作。謝謝!我不明白的是,爲什麼在我的原始代碼中是label.text =「」在循環內傳遞?我用斷點逐句通過了我的代碼,並轉到該行,並沒有更新文本。爲什麼它會在條件成立的情況下執行其他行? – winston 2015-03-31 23:42:27
看這個例子: func example(){timerLabel.text =「7」; timerLabel.text =「6」; timerLabel.text =「5」; timerLabel.text =「4」; timerLabel.text =「3」; timerLabel.text =「2」; timerLabel.text =「1」; timerLabel.text =「0」; } 當你執行這個函數時你會在UI中看到什麼只是timerLabel.text =「0」。認爲每次函數結束時UI都會更新。所以該函數結束時的標籤等於「0」。因此,用戶界面顯示你只是「0」。 – 2015-03-31 23:58:34
啊,好的。這就說得通了。再次感謝! – winston 2015-04-01 01:03:45