이 질문은 일반적인 질문이지만 대부분의 대답은 효과가없는 것 같습니다. 내 애플 리케이션에 타이머가 있고 타이머를 쉽게 시작하고 다시 시작할 수 있습니다. 타이머를 일시 중지하고 다시 시작하려고 시도하고 있지만 지금은 다시 시작하기 만하면 타이머를 다시 시작합니다. 타이머를 다시 시작한 시간보다 깁니다. 아마도 이것은 백그라운드에서 계속 계산된다는 의미입니다. 내 코드는 다음과 같습니다.iOS에서 타이머 일시 중지 및 다시 시작
//Timer Variables
var startTime = NSTimeInterval()
var timer = NSTimer()
var isTiming = Bool()
var isPaused = Bool()
func updatedTimer() {
let currentTime = NSDate.timeIntervalSinceReferenceDate()
var elapsedTime: NSTimeInterval = currentTime - startTime
let minutes = UInt8(elapsedTime/60.0)
elapsedTime -= (NSTimeInterval(minutes) * 60)
let seconds = UInt8(elapsedTime)
elapsedTime -= NSTimeInterval(seconds)
let strMinutes = String(format: "%02d", minutes)
let strSeconds = String(format: "%02d", seconds)
workoutTime.text = "\(strMinutes) : \(strSeconds)"
}
@IBAction func startButtonTapped(sender: AnyObject) {
if !timer.valid {
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: #selector(TimedWorkoutViewController.updatedTimer), userInfo: nil, repeats: true)
startTime = NSDate.timeIntervalSinceReferenceDate()
}
isTiming = true
isPaused = false
}
@IBAction func pauseAndContinueButtonTapped(sender: AnyObject) {
if isTiming == true && isPaused == false {
timer.invalidate() //Stop the Timer
isPaused = true //isPaused
isTiming = false //Stopped Timing
pauseButton.setTitle("RESUME", forState: UIControlState.Normal) //Set Button to Continue state
print(startTime)
} else if isTiming == false && isPaused == true {
if !timer.valid {
timer.invalidate()
//timer = nil
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: #selector(TimedWorkoutViewController.updatedTimer), userInfo: nil, repeats: true)
}
isPaused = false
isTiming = true
pauseButton.setTitle("PAUSE", forState: UIControlState.Normal) //Set Button to Continue state
}
}
당신이 당신의 코드를 공유 될까요 시간을 추적하는 데 사용하는 코드이다? – Gugulethu
굉장합니다. 완벽하게 일했습니다. 고마워. – Gugulethu
그래서'pausedIntervals.append (pausedSeconds)'라는 줄에 '(Date) -> TimeInterval'값을 'TimeInterval'(일명 'Double')으로 변환 할 수 없습니다. 그 이유는 무엇입니까? 몇 가지 구글 검색과 아직 아무것도. –