包涵scheduledTimer秒錶小時部分我拿起斯威夫特和Xcode的一個星期前(IM創建一個應用程序在我的假期學習斯威夫特)斯威夫特 - 不工作
我使用scheduledTimer充當秒錶創建一個定時器。秒和分鐘運行良好,但我無法獲得工作時間。我究竟做錯了什麼?
currentTime = 0
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { _ in
self.currentTime += 1
let hoursPortion = String(format: "%02d", CGFloat(self.currentTime) * 60)
let minutesPortion = String(format: "%02d", self.currentTime/60)
let secondsPortion = String(format: "%02d", self.currentTime % 60)
//let tenPortion = String(format: "%d", self.currentTime * 10 % 10)
self.TimerDisplay.text = "\(hoursPortion):\(minutesPortion):\(secondsPortion)"
}
如果當前時間已過秒,則小時數爲'currentTime/3600'。我不知道你爲什麼乘以20.這種方法可能不是最好的;計時器不準確。更好的方法是在秒錶開始時創建一個「日期」,並在計時器計時時計算該日期與「現在」之間的差值。 'DateComponents'可以幫助您從日期獲取字段。 – Paulw11
是的,這是真的20應該是3600,但我把它設置爲20,所以我不必等待一個小時,看看它是否工作。我將hoursPortion設置爲乘數,因爲我認爲1小時= 3600秒。 –
不,你想劃分,因爲1小時= 3600秒;如果'currentTime' = 3600那麼這是1小時,所以'currentTime/3600' – Paulw11