私はNSTimerを使ってカウントダウンタイマーを作成し、2つのボタンを使って時間を増減します。時間を増減するときに、カウントダウンタイマー秒を00に設定したいと思っています。たとえば、タイマーが10時42分で、9時42分ではなく、10時になると減少ボタンを押します。どのように私はそれを行うことができるでしょうか?ここでImは時間を増減することが現在使用してコードは次のとおりです。カウントダウンタイマーを増減するにはどのように秒を00に設定しますか?
var timeCount:TimeInterval = 1800 //seconds
func startTimer() {
focusTimer.position = CGPoint(x: self.size.width/2, y: self.size.height/1.5)
focusTimer.fontName = "Helvetica"
focusTimer.text = "30 00"
focusTimer.fontColor = UIColor.white
focusTimer.fontSize = 50
focusTimer.zPosition = 79
focusTimer.name = "focustimer"
addChild(focusTimer)
}
func timeStringForScore3(_ time:TimeInterval) -> String {
let minutes = Int(time)/60 % 60
let seconds = Int(time) % 60
return String(format:"%02i %02i", minutes, seconds)
}
func updateStopWatch3() {
self.timeCount -= 1
focusTimer.text = timeStringForScore3(timeCount)
}
@discardableResult
func nextMinute(after seconds: TimeInterval) -> TimeInterval {
return (seconds/60 + 1).rounded(.down) * 60
}
@discardableResult
func previousMinute(before seconds: TimeInterval) -> TimeInterval {
return (seconds/60 - 1).rounded(.up) * 60
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
if node.name == "increase" {
nextMinute(after: timeCount)
focusTimer.text = timeStringForScore3(timeCount)
}
if node.name == "decrease" {
previousMinute(before: timeCount)
focusTimer.text = timeStringForScore3(timeCount)
}
私が減少ボタンを押すと1秒ずつ下がり、増加ボタンを押すと完全に60秒になり、秒は00に設定されません。 – coding22
私のtimeCount変数は1800秒に設定されています。 – coding22
@ coding22私の解は、timeCountがIntであると仮定しています。 –