うるおいらんど

アプリ開発やサイト制作のメモとか。

【Swift】タイマー機能(カウントダウン)を実装する

魚ライン
魚ライン

初めてタイマー機能を設置したのでメモ書き程度に。

タイマーを生成する

タイマーを生成します

タイマーを生成するときにはNSTimerを使います。

scheduledTimerWithTimeIntervalはタイマーを発生させる間隔のことで、今回は1秒に設定しています。

targetはタイマーが発生したときに呼び出すターゲットがあるメソッドを書きます。今回はselfです。

selectorにはタイマーが発生したときのアクション(呼び出すメソッド)を書きます。

userInfoはselectorで呼び出すメソッドに渡す情報です。

repeatsはタイマーの実行を繰り返すかどうか、です。

 

タイマーを繰り返すっていう表現がイマイチピンと来なくて、むむむってなったんですが、NSTimerでは一定間隔ごとにあるメソッドを呼び出すもの、と考えた方がわかりやすかったです。

 

タイマー内の処理

タイマー内の処理を書いていきます。

これはNSTimerにより1秒ごとに呼び出されます。

先にラベルを用意しておきます

時間を表示するラベルをtimeLabel、秒or分を表示するラベルをsecondLabelとしました。

 

今回は3分のタイマーを作ります

分の定数を用意したら、それを秒数に直します

 

そしてタイマーが発生したときに呼び出されるメソッドを書いていきます

 

初めのifで1分以上の場合は分で表示するための処理を書きます。

次のelse ifで1分未満になった場合は秒数で表示するための処理を書きます。

 

0になっときにタイマーを止めるために書くコードがこれです

 

 

今回のタイマーでは、3分の間は常に3分と表示し、59秒から0秒までを秒で表示するようにしました。

表示としては3分 2分 1分 59秒 58秒・・・・2秒 1秒 0秒 となります。

 

全体のコード

 

なぜかカウントが上手くいかなかったりしたんですけど、1減らす部分の場所が悪いなどの、書く位置が悪い!ということがよくありました。。

基本は上から処理しているよってことをあまり気にせずにやっているとおかしな挙動になったりするので注意が必要です。。

 

次はいよいよお絵描き編かもしれないです。

参考サイト

Swift ラーメンタイマー

NSTimer -iPhoneアプリ開発の虎の巻

 

 

魚ライン
モッピー!お金がたまるポイントサイト
魚ライン

Swiftの記事一覧を見る

コメント

コメントは認証制です。詳しくは下記の注意をお読みください。

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

魚ライン 魚ライン