Visualizza un'icona di caricamento durante il download di una risorsa di rete
-
03-07-2019 - |
Domanda
Sto cercando di visualizzare un'icona di caricamento mentre l'app per iPhone scarica una risorsa di rete, ma non riesco a capire come visualizzarla correttamente.
Ho cercato e trovato alcuni dettagli sulla classe UIActivityView
, ma il codice sorgente di esempio disponibile non ha funzionato e la documentazione è piuttosto concisa.
Qualcuno potrebbe fornire un semplice esempio su come usare questa classe?
Soluzione
Supponendo che tu abbia impostato un controller di visualizzazione e desideri aggiungere un UIActivityIndicator
, ecco come puoi farlo:
(supponi di avere una variabile membro chiamata indicatore
, che puoi utilizzare in seguito per ripulire)
Per la tua interfaccia (file .h):
UIActivityIndicator *indicator;
Per la tua implementazione (file .m):
Avvia l'animazione
CGRect b = self.view.bounds;
indicator = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle:
UIActivityIndicatorStyleWhite];
//center the indicator in the view
indicator.frame = CGRectMake((b.size.width - 20) / 2, (b.size.height - 20) / 2, 20, 20);
[self.view addSubview: indicator];
[indicator release];
[indicator startAnimating];
Interrompi l'animazione
[indicator removeFromSuperview];
indicator = nil;
Altri suggerimenti
La risposta di Ben sembra abbastanza simile a quella che sto facendo: la tua ipotesi sul thread è probabilmente accurata. Stai utilizzando NSURLConnection
per gestire il tuo download? In tal caso, stai usando la versione sincrona o asincrona? Se è la versione sincrona e stai semplicemente avviando e arrestando l'animazione attorno alla chiamata sincrona, l'interfaccia utente non si aggiorna fino a quando non hai interrotto l'animazione.