2014-11-25 19 views
5

In sviluppo Android, utilizzo una ProgressDialog per darmi una finestra di dialogo con un 'spinny', un testo e un pulsante di annullamento. Uso questo insieme a un CountdownTimer per eseguire un'azione dopo 10 secondi, a meno che l'utente non annulli la finestra di dialogo.Esiste un equivalente in iOS per Android ProgressDialog

Ho cercato un equivalente in iOS, ad esempio l'open source SVProgressHUD e MBProgressHUD, ma nessuno sembra supportare l'aggiunta di un pulsante.

Devo scrivere il mio, o qualcuno sa di un modo semplice per raggiungere questo obiettivo?

+1

dal IOS 9.0 UIAlertView è stato sconsigliato. Segui [this] (http://stackoverflow.com/a/25671652/6042879) per una risposta aggiornata! –

+0

Provate questa libreria HUD per iOS in swift https://github.com/shubh10/JustHUD –

risposta

7
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
indicator.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
indicator.center = self.view.center;  
[self.view addSubview:indicator]; 
[indicator bringSubviewToFront:self.view]; 
[UIApplication sharedApplication].networkActivityIndicatorVisible = TRUE; 

Scrivi sotto il codice quando si desidera mostrare indicatore

[indicator startAnimating]; 

scrittura sottostante codice quando si desidera nascondere indicatore

[indicator stopAnimating]; 

è stata trovata a How to programmatically add a simple default loading(progress) bar in iphone app

UPD : puoi creare una finestra di avviso senza di te tasti t e aggiungere eventuali elementi personalizzati manualmente:

UIAlertView *alert; 

... 

alert = [[UIAlertView alloc] initWithTitle:@"\n\nConfiguring Preferences\nPlease Wait..." message:nil delegate:self cancelButtonTitle:nil otherButtonTitles: nil]; //display without any btns 
// alert = [[UIAlertView alloc] initWithTitle:@"\n\nConfiguring Preferences\nPlease Wait..." message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles: nil]; //to display with cancel btn 
[alert show]; 

UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 

// Adjust the indicator so it is up a few pixels from the bottom of the alert 
indicator.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height - 50); 
[indicator startAnimating]; 
[alert addSubview:indicator]; 

di licenziare avviso, basta fare

[alert dismissWithClickedButtonIndex:0 animated:YES]; 

Maggiori informazioni su: http://iosdevelopertips.com/user-interface/uialertview-without-buttons-please-wait-dialog.html

+0

Grazie per la risposta, ma sebbene questo mostri uno spinny che posso successivamente eliminare, non offre l'opzione di un pulsante di annullamento. –

+0

risposta aggiornata con nuovo approccio –

+0

Che ha fatto, grazie, una modifica necessaria per mostrare il pulsante Annulla: alert = [[UIAlertView alloc] initWithTitle: @ "\ n \ nConfigurazione preferenze \ nPer favore aspetta ..." messaggio: nil delegate: self cancelButtonTitle: @ "Cancel" otherButtonTitles: nil]; –