今回の記事はSwiftを用いてアプリ内に常に数字が変わる時計を表示する方法をご紹介します。今回はミリ秒時計を作成してみます。初心者にも分かりやすいように記載していくので是非参考にしてみて下さい。
時計を表示するための時間を取得
現在の時間を取得するのは簡単です。
let dt = Date()
print(dt)
これで現在時間が出力されます。
ミリ秒を表示させる場合は下記を追加します。
let dateFormatter = DateFormatter()
// DateFormatter を使用して書式とロケールを指定する
dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "HmsSSS", options: 0, locale: Locale(identifier: "ja_JP"))
ここを書き換えると好きな書式で出力できます。
fromTemplate: "HmsSSS"
この出力する時間をlabel等に常に更新されるように表示していきましょう。
ミリ秒時計を表示
Xcodeで表示を行っていくのでプロジェクトを作成し、各部品を貼り付けていきます。

このLabelを適当な名前でoutlet接続します。今回は「timer_label」
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var timer_label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
var timer = Timer.scheduledTimer(timeInterval: 1/60, target: self, selector: #selector(timeCheck), userInfo: nil, repeats: true)
}
@objc func timeCheck(){
let dt = Date()
let dateFormatter = DateFormatter()
// DateFormatter を使用して書式とロケールを指定する
dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "HmsSSS", options: 0, locale: Locale(identifier: "ja_JP"))
timer_label.text = dateFormatter.string(from: dt)
}
}
少し解説を行います。
@objc func timeCheck(){
let dt = Date()
let dateFormatter = DateFormatter()
// DateFormatter を使用して書式とロケールを指定する
dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "HmsSSS", options: 0, locale: Locale(identifier: "ja_JP"))
timer_label.text = dateFormatter.string(from: dt)
}
この部分で先ほどの出力をラベルに出力する関数を作っております。
timer_label.text = dateFormatter.string(from: dt)
この関数を「Timer.scheduledTimer」のSelectorに入れることでこのように表示を行うことができております。
buildしてみるとミリ秒時計が常に更新されていると思います。
では今回の記事は以上です。他にも多数のswift関連の記事を記載しているので是非参考にしてみて下さい。
コメント