Inflearn コミュニティ Q&A
Stop Watch 질문
作成
·
344
0
Stop Watch 강의도중 시간, 분, 초를 출력해보고 싶어서 코드를 짯습니다.
근데 start 버튼을 누르면 바로 hour부분이 09가 됩니다.
코드입니다.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var labelHour: UILabel!
@IBOutlet weak var labelMinute: UILabel!
@IBOutlet weak var labelSecond: UILabel!
@IBOutlet weak var startStopButton: UIButton!
@IBOutlet weak var resetButton: UIButton!
var isStart = false
var timer = Timer()
var startTime = 0.0
var elapsed = 0.0
@IBAction func startStop(_ sender: Any) {
if isStart{
startStopButton.setTitle("Start", for: .normal)
timer.invalidate()
}else{
startStopButton.setTitle("Stop", for: .normal)
startTime = Date().timeIntervalSince1970 - elapsed
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
}
isStart.toggle()
}
@IBAction func reset(_ sender: Any) {
labelHour.text = "00"
labelMinute.text = "00"
labelSecond.text = "00"
elapsed = 0.0
startTime = Date().timeIntervalSince1970 - elapsed
startStopButton.setTitle("Start", for: .normal)
timer.invalidate()
isStart.toggle()
}
override func viewDidLoad() {
super.viewDidLoad()
labelHour.text = "00"
labelMinute.text = "00"
labelSecond.text = "00"
startStopButton.setTitle("Start", for: .normal)
resetButton.setTitle("Reset", for: .normal)
}
@objc func updateTime(){
elapsed = Date().timeIntervalSince1970 - startTime
let df = DateFormatter()
let date = Date(timeIntervalSince1970: elapsed)
df.dateFormat = "HH"
labelHour.text = df.string(from: date)
df.dateFormat = "mm"
labelMinute.text = df.string(from: date)
df.dateFormat = "ss"
labelSecond.text = df.string(from: date)
}
}
아래 사진은 5분 28초 경과 사진입니다.





