前提・実現したいこと
タイマーアプリを作成している中で、15秒ジャストで止めるとタイマーの文字を少し変更できるようにしたいです
(例)
00:00:00:00:00:00:00:00:00
↓
15:00:00:00:00:00:00:00:00:
こんな感じで少しの変化を出したいと思っています。
if文を使いたいのですが、未熟なのでご教授してもらえると嬉しいです。
該当のソースコード
// // ViewController.swift // onlyTimer // // Created by user on 2020/09/11. // Copyright © 2020 user. All rights reserved. // import UIKit class ViewController: UIViewController { @IBOutlet weak var timerLabel: UILabel! @IBOutlet weak var startButton: UIButton! @IBOutlet weak var stopButton: UIButton! @IBOutlet weak var resetButton: UIButton! var startTime: TimeInterval? = nil var timer = Timer() var elapsedTime: Double = 0.0 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. setButtonEnable(start:true, stop:false, reset: false) } func setButtonEnable(start: Bool, stop: Bool, reset: Bool) { self.startButton.isEnabled = start self.stopButton.isEnabled = stop self.resetButton.isEnabled = reset } @objc func update() { if let startTime = self.startTime { let t: Double = Date.timeIntervalSinceReferenceDate - startTime + self.elapsedTime let min = Int(t / 60) let sec = Int(t) % 60 let msec = Int(t * 100) % 100 let mmsec = Int(t * 100 * 100) % 100 let mmmsec = Int(t * 100 * 100 * 100) % 100 let mmmmsec = Int(t * 100 * 100 * 100 * 100) % 100 let mmmmmsec = Int(t * 100 * 100 * 100 * 100 * 100) % 100 let mmmmmmsec = Int(t * 100 * 100 * 100 * 100 * 100 * 100) % 100 let mmmmmmmsec = Int(t * 100 * 100 * 100 * 100 * 100 * 100 * 100) % 100 self.timerLabel.text = String(format: "%02d:%02d:%02d:%02d:%02d:%02d:%02d:%02d:%02d", min, sec, msec, mmsec, mmmsec, mmmmsec, mmmmmsec, mmmmmmsec, mmmmmmmsec) }} @IBAction func startTimer(_ sender: Any) { setButtonEnable(start: false, stop: true, reset: false) self.startTime = Date.timeIntervalSinceReferenceDate self.timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(self.update), userInfo: nil, repeats: true) } @IBAction func stopTimer(_ sender: Any) { setButtonEnable(start: false, stop: false, reset: true) if let startTime = self.startTime { self.elapsedTime += Date.timeIntervalSinceReferenceDate - startTime } self.timer.invalidate() } @IBAction func resetTimer(_ sender: Any) { setButtonEnable(start: true, stop: false, reset: false) self.startTime = nil self.timerLabel.text = "00:00:00:00:00:00:00:00:00" self.elapsedTime = 0.0 }}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
storyboardでボタンなどを配置しました。
提示のコードではどういう不具合があるんでしょうか
回答1件
あなたの回答
tips
プレビュー