如何更改NSTimer的時間間隔?Swift NSTimer動態更改時間間隔
var difficulty: Double = 1.0
override func viewDidLoad() {
super.viewDidLoad()
_ = NSTimer.scheduledTimerWithTimeInterval(difficulty, target: self, selector: #selector(hideAllBtns), userInfo: nil, repeats: true)
}
我運行一個switch語句,每次從hideallbuttons被調用,然後更新難度。
func getDifficulty (score : Double) -> Double {
switch score {
case 0...100: return(1.0)
case 100...200: return (0.8)
case 200...300: return (0.5)
case 300...400: return (0.2)
default: return (1.0)
}
}
不過的NSTimer繼續開火1.0S我相信它會創建在第一次運行,堅持該值的副本,我試圖創建的計時器調用一個變量,但不起作用。
是否有一種簡單的方法來動態調整定時器觸發的速率?
這只是一個實踐項目,因爲我仍在學習,所以我明白可能有更好的方法來構建我正在嘗試做的事情。我認爲動態調整計時器對未來的使用會很有用。
你的'NSTimer'被設置爲repeat:true。所以它會重複1秒。您需要根據難度設置持續時間,然後重複:false。你應該調用一個方法來啓動定時器,並在'hideAllBtns'中根據難度重新啓動定時器。另請參閱如何在swift中創建getter和setter。https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097-CH14-ID259 – Asdrubal
「這只是一個練習項目」在詢問之前練習搜索的好機會。 – matt