2 votes

Comment faire un compte à rebours en Objective-C ?

J'ai cherché partout mais je ne trouve pas comment faire. J'ai besoin d'un simple timer qui puisse compter en millisecondes et qui puisse être arrêté. (XCode 3.1, Objective-C, Développement de l'iPhone OS )

2voto

James Webster Points 16663

Suis-je bête ou est-ce que "compte à rebours" est la même chose qu'un chronomètre ?

Si c'est le cas, regardez ça tutoriel vidéo

2voto

Jagds Points 52

Voici le code d'exemple que j'ai fait un timer avec la minute, la seconde, et les secondes mili Donc, son utile pour vous. Et aussi le faire sortir après ne pas utiliser

-(void)showTime:(NSTimer *)sender
    {
        miniSeconds++;
        if (miniSeconds == 10)
        {
            miniSeconds = 0;
            seconds++;
            if (seconds == 60)
            {
                seconds = 0;
                minutes++;
            }
        }
        timeLabel.text = [NSString stringWithFormat:@"%02i:%02i:%02i",minutes,seconds,miniSeconds];
    }
    -(void)nextLevelTime
    {
        [labelTimer invalidate];
        miniSeconds = 0;
        seconds = 0;
        minutes = 0;
    }

La méthode nextLevel est utilisée pour arrêter la minuterie et libérer toutes les choses

Utilisez-le, je l'ai fait avec ce code

0voto

Kay Points 6742

0voto

@interface ViewController()
{
UILabel *progress;
    NSTimer *timer;
    int currMinute;
    int currSeconds;
    int currHours;
}
@end

@implementation ViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
    progress=[[UILabel alloc] initWithFrame:CGRectMake(80, 15, 100, 50)];
    progress.textColor=[UIColor redColor];
    [progress setText:@"Time : 00:00:00"];
    progress.backgroundColor=[UIColor clearColor];
    [self.view addSubview:progress];
    currMinute=00;
    currSeconds=00;
    currHours=00;

    // Do any additional setup after loading the view, typically from a nib.
}
-(void)start
{
    timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired) userInfo:nil repeats:YES];

}
-(void)timerFired
{
    currSeconds+=1;
    if(currSeconds==60)
    {
        currSeconds=0;
        currMinute+=1;
        if(currMinute==60)
        {
            currMinute=0;
            currHours+=1;

        }
    }
    [_progress setText:[NSString stringWithFormat:@"%@%02d%@%02d%@%02d",@"Time : ",currHours,@":",currMinute,@":",currSeconds]];

    if(currMinute==2)//stop at 2 minute
    {
        [timer invalidate];
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X