ストップウォッチのアプリを作っていて、スタートボタンを押すと、タイムがスタートされ、ストップを押すとタイマーが停止し、リセットボタンを押すと、タイムの値が消える。までは実装できました。
次に、これにラップ機能を付け加えたいんですけど、どうすれば良いでしょうか。
swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var timerLabel: UILabel! 6 @IBOutlet weak var startButton: UIButton! 7 @IBOutlet weak var stopButton: UIButton! 8 @IBOutlet weak var resetButton: UIButton! 9 10 var startTime: TimeInterval? = nil 11 var timer: Timer? 12 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 setButtonEnabled(start: true, stop: false, reset: false) 17 // Do any additional setup after loading the view, typically from a nib. 18 } 19 20 override func didReceiveMemoryWarning() { 21 super.didReceiveMemoryWarning() 22 // Dispose of any resources that can be recreated. 23 } 24 25 func setButtonEnabled(start:Bool,stop:Bool,reset:Bool){ 26 self.startButton.isEnabled = start 27 self.stopButton.isEnabled = stop 28 self.resetButton.isEnabled = reset 29 } 30 31 func update(){ 32 if let t = self.startTime{ 33 let time:Double = NSDate.timeIntervalSinceReferenceDate - t 34 let sec: Int = Int(time) 35 let msec: Int = Int((time - Double(sec)) * 100.0) 36 self.timerLabel.text = NSString(format:"%2d:%2d:%2d",sec/60,sec%60,msec) as String 37 } 38 } 39 40 @IBAction func startTimer(sender: UIButton) { 41 setButtonEnabled(start: false, stop: true, reset: false) 42 self.startTime = NSDate.timeIntervalSinceReferenceDate 43 self.timer = Timer.scheduledTimer(timeInterval: 0.01,target:self,selector:#selector(ViewController.update),userInfo:nil,repeats: true) 44 45 } 46 @IBAction func stopButton(sender: UIButton) { 47 setButtonEnabled(start: false, stop: false, reset: true) 48 self.timer?.invalidate() 49 self.timer = nil 50 51 } 52 @IBAction func resetTimer(sender: UIButton) { 53 setButtonEnabled(start: true, stop: false, reset: false) 54 self.startTime = nil 55 self.timerLabel.text = "00:00:00" 56 } 57 58} 59 60 61
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。