Question

J'ai un UILabel et un uislider sur une vue. Je veux régler l'heure de étiquette à l'aide du curseur slider.range est 00:00:00 à 03:00:00. des moyens 3 hours.and intervel sur curseur est de 0,5 minutes.also comment show.i voulez que le minuteur fonctionne même si l'application est fermée.

Était-ce utile?

La solution

Tout d'abord, il n'y a aucun moyen de maintenir le fonctionnement de la minuterie après votre application est fermée. des applications d'arrière-plan ne sont pas autorisés uniquement sur l'iPhone. Il y a plusieurs façons de le simuler avec une minuterie (enregistrer un horodatage lors de la sortie d'applications, et vérifiez contre le moment où il commence à remonter), mais il ne sera pas gérer le cas où votre temps ne soit écoulé avant que l'application est a commencé vers le haut.

En ce qui concerne la mise à jour du UILabel avec le compte à rebours, un NSTimer fonctionnerait probablement. Quelque chose comme cela, en supposant que vous avez une minuterie NSTimer, un secondsLeft int, et un countdownLabel UILabel dans votre classe:

Créer la minuterie:

timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];

La méthode de updateCountdown:

-(void) updateCountdown {
    int hours, minutes, seconds;

    secondsLeft--;
    hours = secondsLeft / 3600;
    minutes = (secondsLeft % 3600) / 60;
    seconds = (secondsLeft %3600) % 60;
    countDownlabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
}

je faire quelque chose similaire dans l'une de mes applications, mais ne pas le code à portée de main en ce moment.

Autres conseils

Ce code est erroné.

timer = [NSTimer scheduledTimerWithInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];

Il devrait être.

timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];

vous pouvez maintenir votre minuterie lorsque votre application n'entre fond,

Craver de @shawn dit u vous ne pouvez pas faire cela, mais vous pouvez le faire lorsque l'application entre en arrière-plan ( « non » se termine), qui est un événement différent applicationDidEnterBackground et que vous aurez besoin d'un GCD multithreading (grand dispatch central).

plase consulter ce lien

régler une minuterie dans ios

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top