iPhone: NSTimer Обратный отсчет (минуты отображения: секунды) - PullRequest
9 голосов
/ 13 апреля 2010

У меня настроен код таймера, и он полностью кошерный, но я хочу, чтобы на моем ярлыке вместо секунд показывалось «Минуты: секунды».

-(void)countDown{

    time -= 1;

    theTimer.text = [NSString stringWithFormat:@"%i", time];

    if(time == 0)
    {
    [countDownTimer invalidate];
    }
}

Я уже установил «время» на 600 или 10 минут. Однако я хочу, чтобы на дисплее отображались 10:59, 10:58 и т. Д., Пока он не достигнет нуля.

Как мне это сделать?

Спасибо!

Ответы [ 2 ]

19 голосов
/ 13 апреля 2010
int seconds = time % 60;
int minutes = (time - seconds) / 60;
theTimer.text = [NSString stringWithFormat:@"%d:%.2d", minutes, seconds];
0 голосов
/ 26 июля 2016

К тому времени, когда я сделал небольшое обновление первого ответа, он удалил конфликты, связанные с NSInteger и int:

NSInteger secondsLeft = 987;
int second = (int)secondsLeft % 60;
int minutes = ((int)secondsLeft - second) / 60;
theTimer.text = [NSString stringWithFormat:@"%02d:%02d", minutes, second]];
...