iPhone: NSTimer Countdown (Minutos de exibição: segundos)
Pergunta
Eu tenho meu código de timer configurado e é tudo kosher, mas quero que minha gravadora exiba "minutos: segundos" em vez de apenas segundos.
-(void)countDown{
time -= 1;
theTimer.text = [NSString stringWithFormat:@"%i", time];
if(time == 0)
{
[countDownTimer invalidate];
}
}
Eu já defina "tempo" para 600 ou 10 minutos. No entanto, quero que a tela mostre 10:59, 10:58, etc. até atingir zero.
Como eu faço isso?
Obrigado!
Solução
int seconds = time % 60;
int minutes = (time - seconds) / 60;
theTimer.text = [NSString stringWithFormat:@"%d:%.2d", minutes, seconds];
Outras dicas
Quando fui feito uma pequena atualização da primeira resposta, removeu conflitos que associados de NSInteger
e int
:
NSInteger secondsLeft = 987;
int second = (int)secondsLeft % 60;
int minutes = ((int)secondsLeft - second) / 60;
theTimer.text = [NSString stringWithFormat:@"%02d:%02d", minutes, second]];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow