По какой-то причине секундомер выглядит нормально, но по сравнению с реальной сделкой он идет слишком быстро. Я не понимаю, что я должен делать. Это timeInterval, что я должен изменить? Я бы хотел, чтобы он показывал миллисекунды, секунды и минуты, но все, что я пробую, только усугубляет ситуацию. Спасибо
import UIKit
class ViewController: UIViewController {
// Outlets
@IBOutlet weak var minutes: UILabel!
@IBOutlet weak var seconds: UILabel!
@IBOutlet weak var milliSecondsLabel: UILabel!
@IBOutlet weak var resetButton: UIButton!
@IBOutlet weak var startButton: UIButton!
@IBOutlet weak var pauseButton: UIButton!
// Variables
var timer = Timer()
var time: Int = 0
var running: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
roundButtons()
}
@IBAction func resetTimer(_ sender: Any) {
timer.invalidate()
time = 0
updateUI()
running = false
}
@IBAction func startTimer(_ sender: Any) {
if running {
return
} else {
timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(timerDidEnd), userInfo: nil, repeats: true)
running = true
}
}
@IBAction func pauseTimer(_ sender: Any) {
timer.invalidate()
running = false
}
func roundButtons() {
resetButton.layer.cornerRadius = resetButton.frame.height / 2
startButton.layer.cornerRadius = startButton.frame.height / 2
pauseButton.layer.cornerRadius = pauseButton.frame.height / 2
}
@objc func timerDidEnd() {
time += 1
updateUI()
}
func updateUI() {
var min: Int
var sec: Int
var mil: Int
min = time / (60*60)
sec = (time/60)%60
mil = time & 60
minutes.text = String(min)
seconds.text = String(sec)
milliSecondsLabel.text = String(mil)
}
}