2016-10-31 18 views
0

Neu Swift so kurz mit mir für eine Sekunde. Ich wollte wissen, wie es möglich ist, die Zeit von einem UIDatePicker im Countdown-Timer-Modus zu erfassen und diese dann im Countdown-Format Hour: Minute: Second anzuzeigen. Mein größtes Problem ist es, die Zeit vom Date Picker zu packen. Da bin ich mir nicht sicher, wie ich das anfangen soll.Grabbing Zeit von UIDatePicker

override func viewDidLoad() { 
super.viewDidLoad() 

stopWatchPicker.countDownDuration = 60.0; 

    if timerCount == 0 { 
     timerRunning = false 
    } 
} 

var timerCount = 60 //set to 60 for testing purposes 
var timer = Timer() 
var timerRunning = false 


@IBOutlet weak var stopWatchPicker: UIDatePicker! 
@IBOutlet weak var countDownLabel: UILabel! 

@IBAction func startButton(_ sender: AnyObject) { 
    if timerRunning == false { 
     timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true) 
     timerRunning = true 
    } 
} 
@IBAction func stopButton(_ sender: AnyObject) { 
    timer.invalidate() 
    timerRunning = false 
} 

func updateCounter() { 
    timerCount -= 1 
    countDownLabel.text = "\(timerCount)" 

    if timerCount == 0 { 
     timer.invalidate() 
     timerRunning = false 
    } 
} 
+0

Was meinst du? Nimm es einfach! Sie rufen die CountDownDuration der Datumsauswahl ab. Das ist die Anzahl der Sekunden, die der Benutzer wünscht. Jetzt fang an zu zählen. – matt

Antwort

0

Sie müssen die countDownDuration vom stopWatchPicker abrufen und sie der Variablen timerCount zuweisen.

@IBAction func startButton(_ sender: AnyObject) { 
    if timerRunning == false { 
    timerCount = stopWatchPicker.countDownDuration 
    timerRunning = true 
    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true) 
    } 
} 

Prost!