[iPhone] Timerを使ってストップウォッチを作る

Swift3ではタイマーの使い方が色々と変わりました。
こちらはTimerを使って簡単なstopwatchを作ってみました。
 

Swift 4.0
Xcode 9.0

 

Timer

 

 

Timerの基本的使い方

 
API Referenceでは色々な使用法を想定していますが、scheduledTimerを使うやり方が分かりやすいでしょう。
 

 
スケジューリングしない方法もありますが、今回は2つ目のメソッドを使ってみます。
 
ViewController.swift

 
いきなりアプリ起動とともにTimerを使う事は無いかもしれませんが、viewDidLoadでは早いこともあるのでviewDidAppearでTimerのスケジュールをして開始した方がいいようです。

fire()は使わなくても起動します(入っていてもエラーにはなりませんが)

Logはこのようになりました。

0.01sec間隔ですが0.001secのズレがあります。余り厳しくタイムカウントをするとバッテリー消費が激しいでしょうね

 

Stopwatchを作る

 
Timerを使ってStopwatchアプリを作ってみます。
インターバルでカウントアップしてそれを元にタイムを表示してもいいのですが、ちょっと厳密にディレーが起きても開始時間からのタイムを取り出すようにしてみました。
 
ViewController.swif

 
タイムをformatterで1つのLabelにしようと思ったのですが、Font幅が一定で無いと微妙に表示位置が動きます。冗長的ですがラベルを分けて表示させました。
 
後はボタンとタイムを表示するラベルを紐付けすれば出来上がりです。
 

 

References:
Timer | API Reference
Date | API Reference


ページのトップへ戻る

シェアする

  • このエントリーをはてなブックマークに追加

フォローする