2009-08-21 13 views
0

HI, ich habe eine einfache Anwendung mit 5 View-Controllern mit einiger Funktionalität gemacht .. was ich jetzt tun möchte, ist eine Zeit auf dem Hauptbildschirm hinzuzufügen. und es sollte laufen, bis ich von der Anwendung beende .. ich werde zu anderen Ansichtsteuerungen auch bewegen, aber dieser Zeitmesser würde b laufen .. wie ich diese Funktionalität haben werde?iPhone Hinzufügen eines Timers in der Navigationsleiste

Antwort

0

der praktischste Weg, dies zu tun ist zu fälschen - das heißt, speichern nur den Startzeitstempel und nicht stören, ständig irgendeine Art von timePassed Variable aufrechtzuerhalten. Dies ist sowohl einfacher zu programmieren als auch zuverlässiger, da es stabil ist.

Shop eine NSDate für den Zeitpunkt der Timer gestartet wurde, und wann immer Sie wollen den Timer anzuzeigen oder zu aktualisieren, verwenden NSDate ‚s timeIntervalSinceNow Methode, die die Anzahl der Sekunden als NSTimeInterval vergangen zurückkehrt, das ist im Grunde ein typedef für ein Doppel. Hinweis: Diese Funktion gibt eine negative Zahl zurück, wenn sie für einen Zeitstempel in der Vergangenheit aufgerufen wird, was hier der Fall sein wird.

Wenn ein Teil Ihrer Anzeige diese Zeit anzeigt, können Sie sie jede Sekunde (oder noch öfter) mit einem NSTimer Objekt aktualisieren, das regelmäßig eine Ihrer Methoden aufruft, die die Anzeige aktualisiert.

Beispielcode:

// In the initialization code: 
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self 
       selector:@selector(secondPassed:) userInfo:nil repeats:YES]; 

// Later: 
// (This code assumes #minutes < 60.) 
- (void) secondPassed: (NSTimer:) timer { 
    NSTimeInterval secondsPassed = -1 * [self.timerStart timeIntervalSinceNow]; 
    int minutes = (int)(secondsPassed/60); 
    int seconds = (int)(seconds - minutes * 60); 
    NSString* timerString = [NSString stringWithFormat:@"%02d:%02d", 
          minutes, seconds]; 
    [self updateTimerDisplay:timerString]; 
} 
Verwandte Themen