Wie kann ich anhalten und fortsetzen NSTimer.scheduledTimerWithTimeInterval in swift?
Bin ich, ein Spiel zu entwickeln, und ich möchte ein pause-Menü. Hier ist mein code:
self.view?.paused = true
aber NSTimer.scheduledTimerWithTimeInterval noch läuft..
for var i=0; i < rocketCount; i++ {
var a:NSTimeInterval = 1
ii += a
delaysShow = 2.0 + ((stimulus + interStimulus) * ii)
var time3 = NSTimer.scheduledTimerWithTimeInterval(delaysShow!, target: self, selector: Selector("showRocket:"), userInfo: rocketid[i] , repeats: false)
}
Möchte ich time3 zum anhalten des Timers, wenn der Spieler klicken Sie auf das pause-Menü und weiterhin führen Sie den timer, wenn der Spieler zum Spiel zurückkehren, aber wie kann ich pause NSTimer.scheduledTimerWithTimeInterval? helfen Sie mir bitte.
Nur um zu klären, u anhalten wollen, eine vorhandene timer, wenn ein "pause" - Taste ist gedrückt....und u fortsetzen möchten den timer, wenn Sie die "resume" - Taste gedrückt wird......richtig?
InformationsquelleAutor Pandu Arif Septian | 2015-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie es ungültig ist und neu erstellen. Sie können dann mit einem
isPaused
bool zu verfolgen, den Zustand, wenn Sie die gleiche Taste, um das anhalten und fortsetzen des Timers:InformationsquelleAutor jonnie
Ihn zu stoppen
Ihn wieder starten
Überprüfen Sie diese Antwort stackoverflow.com/questions/9975562/how-to-pause-play-nstimer
Hadjikyriacou Wenn ich Feuer nichts passiert. Keine Hilfe?
Ich denke, Sie sollten re-initialisiert die NSTimer.
Von den Apple-docs: "(ungültig) Hält der Empfänger von immer brennen wieder und fordert seine Entfernung aus seiner Schlinge." Einmal ruft zu entkräften, sollten Sie den timer auf null und (re -) instanziieren/Feuer wieder zu "starten".
InformationsquelleAutor Christos Hadjikyriacou
Starten:
Fortsetzen:
Pause:
Dieser arbeitete für mich. Der trick ist, dass schauen Sie nicht für etwas wie
"timer.resume"
oder"timer.validate"
. Verwenden Sie einfach "den gleichen code für das starten eines timer" fortsetzen nach der pause.InformationsquelleAutor Bill Ancalagon the black
Zu starten
Zu unterbrechen
Zurücksetzen
'label' wird der timer auf Ausgang.
InformationsquelleAutor Kay Cee
Können Sie nicht wieder den timer zurück.
Statt der Wiederaufnahme - erstellen Sie einfach einen neuen timer.
InformationsquelleAutor nickeyzzz
SWIFT3
Globale Deklaration
viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
BtnStart.tag = 0
}
Ausgelöst IBACTION
Funktion, Griff Die Dinge
InformationsquelleAutor Azharhussain Shaikh
Pause-timer : timer.invalidate()
und
Resume timer : timer neu. es ist gut zu arbeiten.
InformationsquelleAutor Chetan Lodhi
Obwohl die Lösungen ausgesetzt, die hier gut sind, dachte ich, eine wichtige Erkenntnis war, fehlt. Wie viele Menschen hier erklärt, timer invalidate() und neu zu erstellen, ist die beste option. Aber man könnte argumentieren, dass Sie tun könnte etwas wie diese:
ist einfacher zu implementieren, aber es wird weniger effizient.
Für Energie, Auswirkungen, Gründe, Apple fördert die Vermeidung Timer, Wann immer möglich und zu bevorzugen, event-Benachrichtigungen. Wenn Sie wirklich brauchen, einen timer zu verwenden, sollten Sie implementieren Pausen effizient ungültig die aktuellen timer. Lesen Sie die Empfehlungen über die Timer in der Apple-Energieeffizienz-Guide hier:
https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/MinimizeTimerUse.html
InformationsquelleAutor Béatrice Cassistat