Xcode Objective-C | iOS: Verzögerungsfunktion / NSTimer Hilfe?
Also ich entwickle meine erste iOS-Anwendung und ich benötige Hilfe..
Einfaches Programm für jetzt, ich haben über 9 Tasten, und wenn ich drücken Sie die erste Taste oder eine beliebige Taste, ich will nur die erste Taste zu markieren, für 60 Millisekunden), unhighlight ist, der zweite button-highlights, warten Sie 60 Millisekunden), unhighlight ist und so weiter für den rest der Tasten, so dass es aussieht wie ein Umzug FÜHRTE.
Ist, habe ich mich versucht zu schlafen/usleep aber einmal, dass die Schlafdauer ist getan, wie es scheint, es überspringt die highlight/unhighlight ist alles zusammen.
Beispiel:
- (void) button_circleBusy:(id)sender{
firstButton.enabled = NO;
sleep(1);
firstButton.enabled = YES;
und so weiter für den rest der Tasten. Es ist delay, aber es spielt keine Verzögerung der "firstButton.enabled = NO;". Ich habe ein Bild für jede Schaltfläche "deaktiviert" und ich habe nie sehen.
Jede Hilfe wird geschätzt! Ich habe mir in NSTimer aber ich war nicht sicher, wie es zu implementieren.
Dank.
-Paul
InformationsquelleAutor der Frage Retro | 2011-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
sleep
funktioniert nicht, da die Anzeige nur aktualisiert werden, nachdem Sie Ihre main-thread zurück an das system. NSTimer ist der Weg zu gehen. Um dies zu tun, müssen Sie Methoden implementieren, die aufgerufen werden, indem Sie den timer zum ändern der Schaltflächen. Ein Beispiel:InformationsquelleAutor der Antwort ughoavgfhw
InformationsquelleAutor der Antwort Avner Barr
Weniger code ist besser code.
Swift:
InformationsquelleAutor der Antwort Alex Haas
Einen etwas weniger ausführlichen Art und Weise ist die Verwendung der performSelector: withObject: afterDelay:
Sie legt fest, bis der NSTimer Objekt für Sie und können leicht abgebrochen
So, weiter mit dem vorherigen Beispiel wäre dies
Mehr info in der doc
InformationsquelleAutor der Antwort ramirogm
Versuchen
InformationsquelleAutor der Antwort Joe Völker
Ich möchte hinzufügen, ein bisschen die Antwort von Avner Barr. Bei der Verwendung von int64, es scheint, dass, wenn wir über den Wert 1.0, die Funktion scheint zu verzögern anders. Also ich denke, an diesem Punkt, sollten wir nutzen NSTimeInterval.
So, der Letzte code ist:
InformationsquelleAutor der Antwort John Bassos
Ist die beste zu verwenden. Mit sleep(15); verursachen, der Benutzer kann andere Aktionen ausführen. Mit der folgenden Funktion, die Sie ersetzen würden, goToSecondButton mit der entsprechenden Auswahl oder Befehl, die ebenfalls aus dem Rahmen.
InformationsquelleAutor der Antwort Hanson So