【Swift5】タイマーで時間をカウントする
(1) 残り時間(経過時間)を表す変数を宣言
(名前は場面に合わせて設定しましょう。ここではcountとします。代入する数字はなんでもいいです。)
var count = 30
(2) タイマーを実行したい場所に以下のコードを書く
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateCount), userInfo: nil, repeats: true)
引数の説明
引数名 | 説明 | ヒント |
---|---|---|
timeInterval | タイマーが実行されるまで(updateCountが実行されるまで)の時間(秒) | repeatsがtrueの場合は実行間隔 |
target | タイマーが実行された時のメッセージの送信先 | ここではselfで良い。 |
selector | タイマーが実行された時に送るメッセージ | ここでは#selector(updateCount)で関数updateCountを実行してくださいというメッセージを表す |
userInfo | タイマーのユーザー情報。 | これはnil(空)で良い |
repeats | タイマーを繰り返すかどうか。(trueかfalse) | カウントダウンタイマーやストップウォッチのようなものを作る場合はtrueで良い。 |
(3) 関数updateCountを作成
@objc func updateCount() { // ここにtimeInterval毎に実行したい処理を書く // 例えばcountから1を引いてカウントダウン count -= 1 // countが0になったら完了!と表示 if count <= 0 { print("完了!") } }