Ho un uilabel e un uislider su una vista. Voglio impostare l'ora dell'etichetta usando slider.range del cursore è 00:00:00 alle 03:00:00. significa 3 ore. Interag on the slider è 0.5 minuti. Anche come mostrare. Voglio che il timer funzioni anche se l'applicazione è chiusa.come mostrare il conto alla rovescia su uilabel in iphone?
risposta
Prima di tutto, non c'è modo di mantenere il timer in esecuzione dopo aver chiuso l'app. Le app di sfondo semplicemente non sono consentite su iPhone. Ci sono modi per fingere con un timer (salvare un timestamp quando l'app si chiude e controllarlo contro il momento in cui si avvia il backup), ma non gestirà il caso in cui il timer si esaurisce prima che l'app venga riavviata su.
Per quanto riguarda l'aggiornamento dell'UILabel con il conto alla rovescia, un NSTimer probabilmente funzionerebbe. Qualcosa del genere, a patto di avere un timer NSTimer, un int secondsLeft, e un UILabel countdownLabel nella classe:
Creare il timer:
timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
Il metodo 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];
}
I fare qualcosa di simile in una delle mie app, ma non avere il codice a portata di mano in questo momento.
Questo codice è errato.
timer = [NSTimer scheduledTimerWithInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
Deve essere.
timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
è possibile mantenere il timer in funzione quando l'applicazione ha fatto entra sfondo,
come @shawn craver u ha detto non potete fare questo, ma si può fare questo quando l'applicazione entrerà in background ("non termina") che è un diverso evento applicationDidEnterBackground e con questo avrete bisogno di alcuni GCD multithreading (grand central dispatch).
prego di fare riferimento questo link
- 1. C# conto alla rovescia
- 2. conto alla rovescia multiplo su singola pagina
- 3. Conto alla rovescia per Android
- 4. PHP Conto alla rovescia fino alla data
- 5. Timer conto alla rovescia in Pygame
- 6. Come eseguire il conto alla rovescia in ciclo for?
- 7. Timer conto alla rovescia per Android alla data
- 8. Come eseguire il conto alla rovescia con gli osservabili RxJS?
- 9. Cronometro che esegue il conto alla rovescia in C#
- 10. Reindirizza 10 secondi Conto alla rovescia
- 11. Javascript refresh + conto alla rovescia testo
- 12. tempo timer conto alla rovescia per android
- 13. Come aggiungere tempo al timer per il conto alla rovescia?
- 14. Conto alla rovescia di ProgressBar Android
- 15. Attività di Celeria con conto alla rovescia
- 16. Implementazione di un conto alla rovescia con Servizio in background
- 17. come fare un conto alla rovescia in java
- 18. Come fare un conto alla rovescia in Android?
- 19. Conto alla rovescia Javascript utilizzando il fuso orario assoluto?
- 20. ListView e voci con timer per il conto alla rovescia
- 21. Reimposta il conto alla rovescia sull'attività di Celeria
- 22. Javasacript Timer conto alla rovescia in giorni, ore, minuti, secondi
- 23. Timeout cookie Javascript con timer conto alla rovescia
- 24. Javascript, conto alla rovescia e testo del display
- 25. Come si implementa un conto alla rovescia a scorrimento orizzontale?
- 26. Come creare un timer conto alla rovescia wpf?
- 27. Come posso effettuare un conto alla rovescia con NSTimer?
- 28. Come interrompere il mio conto alla rovescia JavaScript facendo clic su un pulsante?
- 29. (NSTimer) creazione di un conto alla rovescia del timer
- 30. selezionatore di ore/minuti per conto alla rovescia Android
qual è il valore di secondsLeft. –
Questo è il numero di secondi per cui si desidera eseguire il timer, molto probabilmente il setup in base al valore di UISlider. –
, come ha detto Shawn, non è possibile mantenere il timer in esecuzione dopo che l'app è stata chiusa, quindi assicurati di tenere traccia dell'ora di inizio quando l'app invia UIApplicationWillTerminateNotification (penso che sia, sono arrugginito). L'unica soluzione alternativa a un timer che si verifica quando l'app non è in esecuzione consiste nell'utilizzare la notifica push. ma quello può diventare costoso. – pxl