この動画↓
SwiftでなんちゃってStopWatchを作ってみた(その1)http://www.nicovideo.jp/watch/sm24733337
SwiftでなんちゃってStopWatchを作ってみた(その2)http://www.nicovideo.jp/watch/sm24739192
を参考にStopWatchアプリを作ってみた。
挙動こんな感じ
StopWatch - Swift
https://youtu.be/5pcY_DGGPeY
動画通りに作ってもバージョンの違いで最初はエラー、ビルド通っても動かずなど色々ありましたが、試行錯誤したソースコードが後述のものです。
ちなみに、
swift 2.2
Xcode 7.3.1
で作成しました。
後から色々機能を付け足すつもりでプロジェクトをタブバーアプリケーションで作成したため、
関数呼び出し時にクラス名も記述している箇所などはバージョン云々ではなく書き方が違うと思うのですが、
細かいところがいくつか違うのでご参考までに。
import UIKit
class FirstViewController: UIViewController {
var countNum = 0
var timerRunning = false
var timer = NSTimer()
func update(){
countNum+=1
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(FirstViewController.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.
}
}