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.
}

}


SwiftでなんちゃってStopWatchを作ってみた(その2):ミリ秒を表示しよう」への2件のフィードバック

  1. kozika

    こんにちは、最近Swiftを勉強し始めました。参考にさせていただいております。
    時間の計算のところ間違っていたので指摘させていただきます。
    let ms = countNum % 100
    let s = (countNum – ms) / 100 % 60
    let m = (countNum – s – ms) / 6000 % 3600

    let ms = countNum % 60
    let s = (countNum – ms) / 60 % 60
    let m = (countNum – s – ms) / 3600 % 60
    です。
    今後とも勉強にさせていただきますのでよろしくお願いします。

    返信
    1. admin 投稿作成者

      ご指摘ありがとうございます!この頃は(今も大したことはまったくないですが)意味不明で、とにかく思いつく限りの数値を入れていた気がします笑。最近はあまり更新しておりませんが、今後とものんびり御願いいたします。

      返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です