[iOSアプリ開発][Xcode 8] ストップウォッチを実装する
Swift でストップウォッチを作り、リセットボタンでリセットできるようにする。今回は表示される時間は秒とし、小数第2位まで表示する。
(1)プロジェクトを作成する。
(2)Main.storyboard をクリック。時間表示用のラベルとして、Object library の Label を画面にドラッグアンドドロップする。ボタンは「00.00」などと表示するようにしておくといい。
(3)スタート・ストップ用のボタンとして、Object library の Button を画面にドラッグアンドドロップする。
(4)リセットボタンとして、Object library の Button を画面にドラッグアンドドロップする。ボタンは「リセット」などと名前を変えておくといいだろう。
(5)右上の円が二つ重なった Show the Assistant editor アイコンをクリックし、エディタを表示する。
(6)2のラベルをエディタ(ViewController.swift)に右クリックでドラッグアンドドロップ。以下のように設定する。
Connection;Outlet
Name ;StopWatchLabel
Type ;UILabel
Storage ;Weak
(7)3のボタンをエディタ(ViewController.swift)に右クリックでドラッグアンドドロップ。以下のように設定する。
Connection;Action
Name ;StartStopButton
Type ;AnyObject
Event:Touch Up Inside
Arguments:Sender
(8)以下のようにコードを書く。
1 @IBOutlet weak var StopWatchLabel: UILabel!
2
3
4 var timer = Timer()
5 var seconds:Int = 0
6 var fractions:Int = 0
7 var stopwatchString: String = ""
8 var startStopWatch:Bool = true
9
10
11 @IBAction func StartStopButton(_ sender: AnyObject) {
12 if startStopWatch == true {
13 timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(ThirdViewController.updateStopwatch), userInfo: nil, repeats: true)
14 startStopWatch = false
15 }else {
16 timer.invalidate()
17 startStopWatch = true
18 }
19 }
20
21 func updateStopwatch() {
22 fractions += 1
23 if fractions == 100 {
24 seconds += 1
25 fractions = 0
26 }
27 let fractionsString = fractions > 9 ? "\(fractions)" : "0\(fractions)"
28 let secondsString = seconds > 9 ? "\(seconds)" : "0\(seconds)"
29
30 stopwatchString = "\(secondsString).\(fractionsString)"
31 StopWatchLabel.text = stopwatchString
32 }
(9)4のリセットボタンをエディタ(ViewController.swift)に右クリックでドラッグアンドドロップ。以下のように設定する。
Connection;Action
Name ;Reset
Type ;AnyObject
Event:Touch Up Inside
Arguments:Sender
(10)以下のようにコードを書く。
1@IBAction func Reset(_ sender: AnyObject) {
2 fractions = 0
3 StopWatchLabel.text = "00.00"
4 }
参考:
SwiftでなんちゃってStopWatchを作ってみた(その1) | bick.xyz
http://bick.xyz/archives/230
SwiftでなんちゃってStopWatchを作ってみた(その2):ミリ秒を表示しよう | bick.xyz
http://bick.xyz/archives/233
iOS 8 Swift – Make a stopwatch with full functionality – Part 1 / 3 – YouTube
https://www.youtube.com/watch?v=82SXeAmZwk8