2014-12-03 12 views
5

ich eine App entwickeln mit WatchKitiOS, WKInterfaceTimer Sie Timer starten

ich ein WKInterfaceTimer erstellen möchten, wenn ich der Timer beginnt mit 0 Zweite

in eine Taste tippen, aber wenn ich ausführen der Anwendung der Timer automatisch starten und ich bin Timer vor oder nach

hier ist der Code nicht in der Lage zu stoppen:

[self.mytimer setHidden:NO]; 
[self.mytimer start]; 

Im Storyboard ich kurz „zweite Minuten Stunde“ alle aktiviert und aktiviert unticked

Muss ich verwenden müssen [self.mytimer setDate:];

Wenn ja, bitte geben Sie mir die genaue für kurze Zeichenfolge mit zeigt Label 0 secends gesetzt haben

Antwort

7

Ich bin nicht genau sicher, was Sie fragen, aber ich habe einen Timer mit einem Knopf darunter in meinem Storyboard für die Uhr platziert. Dann stellte ich sicher, dass der Timer mit abgekürztem Format aktiviert war (Sicherstellen, dass Sekunde, Minute und Stunde ausgewählt waren). Stellen Sie sicher, dass der Timer aktiviert ist. Andernfalls wird er nicht in Ihrer Ansicht angezeigt. Zurzeit konnte ich keine Möglichkeit finden, den Timer programmgesteuert zu aktivieren. Stellen Sie außerdem sicher, dass Sie das Datum einstellen, wenn Sie den Startknopf drücken, sonst beginnt der Timer zu zählen, ohne dass Sie im Hintergrund wissen. In der WKInterfaceTimer-Klasse aktualisiert die Startmethode nur die Beschriftung und startet eigentlich keinen Timer. Der folgende Code macht den Timer zählt von 0.

#import "InterfaceController.h" 


@interface InterfaceController() 
@property (weak, nonatomic) IBOutlet WKInterfaceTimer *testTimer; 
@end 


@implementation InterfaceController 

- (instancetype) initWithContext: (id) context 
{ 
    self = [super initWithContext:context]; 
    if (self) 
    { 
     NSLog(@"Custom init called for InterfaceController!"); 
    } 
    return self; 
} 

- (void) willActivate 
{ 
    [self.testTimer stop]; 
    NSLog(@"Activated!"); 
} 

- (IBAction) onStartButtonPressed 
{ 
    [self.testTimer setDate:[NSDate dateWithTimeIntervalSinceNow:-1]]; 
    [self.testTimer start]; 
    NSLog(@"Start button pressed!"); 
} 
@end 

Der Grund für den Timer unter willActivate zu stoppen ist, so dass es nicht zu zählen beginnt, nach oben, sobald die Ansicht angezeigt wird.

+0

Danke, es ist Arbeit :) – katrin

+0

Kein Problem, ich hoffe, Sie haben gelernt, was Sie falsch gemacht haben. –

+2

Ich habe eine Frage. [NSDate dateWithTimeIntervalSinceNow: -1], warum "-1"? –

Verwandte Themen