2017-05-22 6 views
0

내 코드에서 startButton 카운트 다운을 누르면 60 - 0이됩니다. 내가하고 싶은 모든 3에서 카운트 다운을 가지고있다 - 0 다음 카운트 다운 60 - 다음 이동 0카운트 다운 타이머 (swift3) 전에 카운트 다운 타이머를 추가하십시오.

import UIKit 
class ViewController: UIViewController { 

@IBOutlet weak var startButton: UIButton! 
@IBOutlet weak var timerLabel: UILabel! 

var seconds = 60 
var timer = Timer() 
var isTimerRunning = false 
var resumeTapped = false 

@IBAction func startButtonTapped(_ sender: UIButton) { 
    if isTimerRunning == false { 
     runTimer() 
     self.startButton.isEnabled = false 
    } 
} 

func runTimer() { 
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(ViewController.updateTimer)), userInfo: nil, repeats: true) 
    isTimerRunning = true 

} 
@IBAction func resetButtonTapped(_ sender: UIButton) { 
    timer.invalidate() 
    seconds = 60 
    timerLabel.text = timeString(time: TimeInterval(seconds)) 
    isTimerRunning = false 

} 

//MARK: - Public Method 
func updateTimer(){ 
    if seconds < 1 { 
     timer.invalidate() 
     //Send alert to indicate time's up. 
    } else { 
     seconds -= 1 
     timerLabel.text = timeString(time: TimeInterval(seconds)) 
    } 
} 

func timeString(time:TimeInterval) -> String { 
    let hours = Int(time)/3600 
    let minutes = Int(time)/60 % 60 
    let seconds = Int(time) % 60 
    return String(format:"%02i:%02i:%02i", hours, minutes, seconds) 
    }} 
+0

여기서 어떤 문제가 발생 했습니까? – KKRocks

+0

2 번 카운트 다운 타이머를 3-0과 60-0으로 연결하려고합니다. –

답변

0

흠 60 초 카운트 다운 타이머를 시작 설정 그것의 0 생각해 마크, 우리 전 타이머를 연결하려고 시도 할 수 있습니다. 디스플레이 디스플레이를 두 개씩 차례대로 사용할 수 있습니다.

이제 첫 번째 타이머는 3에서 시작하고 두 번째 타이머는 60, 3보다 작습니다 60보다 ...

아마 타이머를 64에서 시작할 수 있지만 디스플레이 tim 나머지는 (시간, 61), 그 나머지는 3, 2, 1, 0, 60, 59, ...이됩니다.

나머지는 %입니다.

그래서 같은 :

    64
  • 변화 actualTime-timeString의 매개 변수 이름의 시작 시간
  • 는 첫 번째 라인으로 let time = actualTime % 61을 추가합니다.

BTW : 상수 60은 코드에서 두 번 발생합니다. let 상수를 사용하여 변수를 다시 설정하는 것이 좋습니다. 사전 카운트 다운 등에 대한 비슷한 상수를 소개하십시오.

HTH