#使ってみるきっかけ
水球のルールが変わり現在使用しているタイマーでは新ルールには対応できないとわかりました。iPhoneアプリを作ってMacにミラーリングすればいい感じになるのではと、思い付きで作成してみた。
#Timerについて
TimerはUIKitに含まれている。
最初にTimerの名前を決める。今回はmytimer。
var mytimer : Timer!
調べている途中ではNSTimerを使っている記事がたくさんみられたがTimerに変更されている。
Timerを生成する関数の名前を決め作成する。
func createTimer(){
//timerを生成する.
maintimer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(self.maintimeaction(timer:)), userInfo: nil, repeats: true)
}
このコードの役割。
コードの名前 | 意味 |
---|---|
timeInterval | 何秒経ったら関数を呼び出すかの定義 |
target | selectorの場所を指定する。 |
selector | 時間が経って行うことを書いたところを指定する |
userInfo | パラメータとして渡したい何かを記述。 |
repeats | 繰り返しを行うかどうかをBoolで書く |
時間が経って行うことを書いてみる。
@objc func maintimeaction(timer: Timer){
//例えばLabeに表示や時間を加えたり減らしたりなどなど
}
タイマーを作成
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
createTimer()
//さっきの関数の名前
}
タイマーを止めるときは下記のコードで止めることが可能。
maintimer.invalidate()
ただし、止めた後はもう一度タイマーを生成しなければならない。
これでタイマーが動いているか止まっているか確かめられる。
maintimer.isValid
#最後に
意外と簡単であった。また2つのタイマーを動かすこともでき水球のタイマー作っていて楽しかった。
#参考文献
https://pg-happy.jp/swift-scheduledtimer.html
https://qiita.com/KikurageChan/items/5b33f95cbec9e0d8a05f
https://uruly.xyz/【swift】タイマー機能カウントダウンを実装する/
https://picolica.com/2017/04/17/swift3-5sec-timer/
などなど