swiftで、タイマー(Timer)を使ってみる
今回は、Swiftでタイマー(Timer)を使う方法を書きます。
こんな感じに使います。
import UIKit class ViewController: UIViewController { //タイマー var timer: NSTimer! var cnt: Float = 0 override func viewDidLoad() { super.viewDidLoad() } @IBAction func timerBtn(sender: UIButton) { //タイマーを作る. timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "onUpdate:", userInfo: nil, repeats: true) } func onUpdate(timer : NSTimer){ cnt += 0.1 if cnt > 5.0 { if timer.valid { //timerを停止する. timer.invalidate() } } } }
上のプログラムは、「Button」を押すとタイマーがスタートします。
こちらの部分で、タイマーを作ります。
var timer: NSTimer! timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "onUpdate:", userInfo: nil, repeats: true)
第1引数の部分は、タイマーを発生させる間隔です。例えば、0.1なら0.1秒間隔になります。1.0なら1.0秒間隔です。
第2引数の「target」は、タイマー発生時に呼び出すメソッドがあるターゲットを指定します。通常は「self」で大丈夫だと思います。
第3引数の「selector」の部分は、タイマー発生時に呼び出すメソッドを指定します。今回の場合は「onUpdate」を呼び出しています。
ちなみに、「selector」の部分は「 Selector("onUpdate")」という書き方もできます。こういうふうに書く場合は、呼び出すメッソドの引数の部分を、
func onUpdate(timer : NSTimer)
このように変えてください。↓↓
func onUpdate()
第4引数の「userInfo」は、selectorで呼び出すメソッドに渡す情報を指定します。
第5引数の「repeats」は、タイマーの実行を繰り返すかどうかです。trueの場合、繰り返します。falseは1回のみです。
次に、こちらの部分です。
if timer.valid { timer.invalidate() }
「〜.valid」で、タイマーが動いているかどうかの判定ができます。
そして、「invalidate()」でタイマーを停止することができます。
これで、終わります。
参考サイト
Swiftでアニメーションとタイマーを使ってみた - Qiita
NSTimer - iPhoneアプリ開発の虎の巻
※Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m