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

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

Swift 4.0
Xcode 9.2

 

Timer

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

 

 

Timerの基本的使い方

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

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

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

 

Stopwatchサンプルコード

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

 
タイムをformatterで1つのLabelにしようと思ったのですが、Font幅が一定で無いと微妙に表示位置が動きます。冗長的ですがラベルを分けて表示させました。
 
後はstoryboardでボタンとタイムを表示するラベルを紐付けます。それぞれフォントサイズや背景色を適宜合わせて出来上がりです。

 

サンプル動画

 

 
 
References:
Timer – Foundation | Apple Developer Documentation
Date – Foundation | Apple Developer Documentation

誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:




ページのトップへ戻る

シェアする

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

フォローする