Sto scrivendo un'app per iOS e devo visualizzare un UIAlertView con uno spinner. A volte,, qualcosa va storto quando provo ad aggiungere lo spinner al centro dell'avviso, di solito quando c'era un altro avviso proprio prima di questo (non esattamente una regola, ma è così che ho notato che fallisce).UIActivityIndicatorView non visualizzato direttamente su UIAlertView
Ho parzialmente risolto questo errore ritardando la creazione dello spinner. Ecco come lo faccio (avviso è membro UIAlertView):
Questo codice è in viewDidLoad:
alert = [[[UIAlertView alloc] initWithTitle:@"Loading..." message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles: nil] autorelease];
[alert show];
[self performSelector:@selector(addSpinner) withObject:nil afterDelay:0.5f];
E questo è il mio addSpinner funzione:
- (void) addSpinner{
UIActivityIndicatorView *indicator2 = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator2.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height - 50);
[indicator2 startAnimating];
[alert addSubview:indicator2];
[indicator2 release];
}
Questa soluzione funziona sempre, ma non mi piace come sia fatta. Anche se mostrare lo spinner mezzo secondo dopo che l'avviso si apre non è così fastidioso, ci deve essere un modo migliore per gestirlo. Non sono un esperto di iOS, né sono un programmatore esperto, ma non posso utilizzare un evento? Qualcosa come "quando viene effettivamente visualizzato l'avviso, vai alla funzione addSpinner"? Non ho idea di come fare questo, e non ho potuto trovare molto aiuto sul web ...
Spero che qualcuno possa aiutarmi! Grazie.
Grazie per quello, sembra abbastanza buono, potrei provare ad usarlo. Non posso contrassegnare la tua risposta come la mia "risposta accettata", in quanto in realtà non risolve il problema :) – rdurand
nessun problema :) .. puoi semplicemente votare, se è stato utile :) – waheeda
Ho aggiunto alcuni codice per risolvere il tuo problema, spero che possa aiutarti. – waheeda