爲什麼我的秒錶上的啓動按鈕會在按下停止按鈕後重置計時器?一切工作正常,直到我停止計時器,然後重新啓動它。它應繼續從它停止的點,而是它的計時器重置爲0。這裏是我的代碼:停止啓動後,我的秒錶上的啓動按鈕重置計時器swift
類的ViewController:UIViewController的{
var timer = NSTimer()
var startTime = NSTimeInterval()
@IBOutlet var displayTimeLabel: UILabel!
@IBAction func start(sender: AnyObject) {
if !timer.valid {
timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: #selector(ViewController.updateTime), userInfo: nil, repeats: true)
}
startTime = NSDate.timeIntervalSinceReferenceDate()
}
@IBAction func stop(sender: AnyObject) {
timer.invalidate()
}
func updateTime() {
let currentTime = NSDate.timeIntervalSinceReferenceDate()
var elapsedTime: NSTimeInterval = currentTime - startTime
let hours = UInt8(elapsedTime/3600)
elapsedTime -= (NSTimeInterval(hours) * 3600)
let minutes = UInt8(elapsedTime/60)
elapsedTime -= (NSTimeInterval(minutes) * 60)
let seconds = UInt8(elapsedTime)
elapsedTime -= NSTimeInterval(seconds)
let fraction = UInt8(elapsedTime * 100)
let strHours = String(format: "%02d", hours)
let strMinutes = String(format: "%02d", minutes)
let strSeconds = String(format: "%02d", seconds)
let strFraction = String(format: "%02d", fraction)
displayTimeLabel.text = "\(strHours):\(strMinutes):\(strSeconds):\(strFraction)"
}
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.
}
}
你在你的'start'方法重置'startTime'功能的復位按鈕。如果你想繼續,不要這樣做 – Paulw11
如果我把這行代碼拿出來,那麼我得到這個問題:致命錯誤:浮點值不能轉換爲UInt8,因爲它大於UInt8.max @ Paulw11 – nodyor90z