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)
}
私は、hideallbuttonsから毎回呼び出され、難易度を更新するswitch文を実行します。
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.0秒で発射し続け、私はタイマーコールで変数を作成しようとしましたが、それは動作しません。
タイマーが起動する速度を動的に調整する簡単な方法はありますか?
これは私がまだ学んでいる練習プロジェクトなので、私がやろうとしていることを構造化するための方がはるかに良い方法があると理解しています。私は動的に調整するタイマーが将来の使用に役立つと思います。
あなた 'NSTimer'を繰り返すように設定されている:真。だから1秒だけ繰り返すでしょう。難易度と繰り返しに基づいて期間を設定する必要があります:false。メソッドを呼び出してタイマーを開始し、 'hideAllBtns'メソッドで難易度に基づいてタイマーをリセット(つまり開始)する必要があります。また、https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097-CH14-ID259でゲッターとセッターを作成する方法もご確認ください。 – Asdrubal
"これは単なる練習プロジェクトです。"尋ねる前に検索を練習するチャンス。 – matt