嗨,我想制作一个简单的计时器选择器和标签。
一切顺利,直到我的应用程序进入后台,我不明白为什么?我忘了什么?
这里我的.m部分设置倒计时并计算它
- (void)tick {
//sottraiamo uno dal countdown
countdown--;
//controlliamo che il valore di countdown sia minore di zero
if (countdown < 0) {
NSLog(@"controllo");
//se è minore di zero allora il timer è finito
//Incvochiamo l'azione playSound per suonare l'allarme
[self playSound];
//Invochiamo il metodo fermaIlTimer per fermare il timer
[self fermaIlTimer];
//Arrestiamo il codice
return;
//Inibisce lo standby
[UIApplication sharedApplication].idleTimerDisabled = YES;
}
//Assegnamo alla proprietà text della UILabel la stringa restituita dal metodo formattazioneLabel
self.countdownLabel.text = [self formattazioneLabel];
}
#pragma mark Azioni
//Impostiamo l'azione del pulsante newTime
- (IBAction)newTime:(id)sender {
//controlliamo se sta andando e se si fermiamo il blocco di codice con il return
if (isRunning) return;
//Impostiamo il countdown con il metodo dateWithTimeIntervalSinceNow prendendo il tempo dal valore della ruota di selezione + 1
countdown = [self getPickerTime];
//Assegnamo alla proprietà text della UILabel la stringa restituita dal metodo formattazioneLabel
self.countdownLabel.text = [self formattazioneLabel];
}
//Start
- (IBAction)start:(id)sender {
if (isRunning == NO && isPlay == NO){
//Impostiamo su si il booleano isRunning
isRunning = YES;
//Impostiamo il countdown con il metodo personalizzato
countdown = [self getPickerTime];
//Invochiamo il primo tick
[self tick];
//Avviamo la data con il metodo scheduledTimerWithTimeInterval che ogni secondo invoca il metodo tick
self.theTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tick) userInfo:nil repeats:YES];
//imposta la font di rosso
self.countdownLabel.textColor = [UIColor redColor];
//modifiche fondo
fondo.image = [UIImage imageNamed: @"Bck_timerII.png"];
myPicker.hidden = YES;
copertura.hidden = YES;
start.hidden = YES;
stop.hidden = NO;
pausa.hidden = NO;
}
}
答案 0 :(得分:0)
你的行 -
[UIApplication sharedApplication].idleTimerDisabled = YES;
永远不会执行,因为你有“回归”;在上一行。