SwiftでなんちゃってStopWatchを作ってみた(その2):ミリ秒を表示しよう

「SwiftでなんちゃってStopWatchを作ってみた(その1)」の続きです。前回のものをベースに、コードをちょっと書き換えまして、ミリ秒を表示できるようにしました。具体的には、NSTimerの処理時間の変更と、ラベルテキストの表示(String(format:))に手を加えています。

できるもの

スクリーンショット 2014-10-21 13.16.02

ソフトのバージョン

OS: OSX Yosemite 10.10
Xcode: 6.1
※前回まで6.1beta使ってましたが、今回から6.1になりました。

つくりかた

動画でご確認ください。

コード


import UIKit

class ViewController: UIViewController {

var countNum = 0
var timerRunning = false
var timer = NSTimer()

func update() {
countNum++
timeFormat(countNum)
}

func timeFormat(countNum:Int) {
let ms = countNum % 100
let s = (countNum - ms) / 100 % 60
let m = (countNum - s - ms) / 6000 % 3600
label.text = String(format: "%02d:%02d.%02d", m, s, ms)
}

@IBOutlet weak var label: UILabel!

@IBAction func start(sender: UIButton) {
if timerRunning == false {
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
timerRunning = true
}
}

@IBAction func stop(sender: UIButton) {
if timerRunning == true {
timer.invalidate()
timerRunning = false
}
}

@IBAction func reset(sender: UIButton) {
countNum = 0
label.text = "00:00.00"
}

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}