2011-09-14 9 views
20

Nella mia app per iPhone sto scaricando alcuni dati da un server FTP. Per mostrare l'azione che sto usando UIActivityIndicator. Se inserisco UIProgressView al posto di UIActivityIndicator, sarà più appropriato. Come utilizzare UIProgressView durante il download di alcuni dati? Qualcuno può darmi un link tutorial o un codice di esempio? Grazie in anticipo.come utilizzare la barra di avanzamento nell'app per iphone

+0

stai usando i metodi NSURLConnection? per il download di ftp? – Ketan

+0

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

risposta

41

prima si crea IBOutlet nel file h

IBOutlet UIProgressView * threadProgressView; 

Poi, nel file di .m in viewDidLoad primo set di avanzamento per 0,0 quindi chiamare il metodo makeMyProgressMoving

threadProgressView.progress = 0.0; 
    [self performSelectorOnMainThread:@selector(makeMyProgressBarMoving) withObject:nil waitUntilDone:NO]; 

quindi aggiungere sotto il metodo

- (void)makeMyProgressBarMoving { 

     float actual = [threadProgressView progress]; 
     if (actual < 1) { 
      threadProgressView.progress = actual + ((float)recievedData/(float)xpectedTotalSize); 
      [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO]; 
     } 
     else{ 



     } 

    } 

anche dare la tua recensione per la risposta. ti è utile?

4

È abbastanza semplice. Hai solo bisogno di impostare il valore appropriato della proprietà progress di UIProgressView.

In delegato di NSURLConnection si dovrebbe ricevere la quantità di dati che si sta aspettando di scaricare e aggiornare il progress durante il download. Progress è rappresentato da un valore a virgola mobile compreso tra 0.0 e 1.0, incluso, dove 1.0 indica il completamento dell'attività.

+0

puoi darmi qualche codice di esempio? – Ravi

4

È possibile visualizzare il progresso della barra di avanzamento con questi riga di codice

-(void) connection:(NSURLConnection *) connection 
didReceiveData:(NSData *) data { 
    if (file) 
    { 
     [file seekToEndOfFile]; 
     progressView.progress = ((float)recievedData/(float) xpectedTotalSize); 
    } 
    [file writeData:data]; 
    recievedData += data.length; 
    NSLog(@"Receiving Bytes: %d", recievedData); 
} 
2

Una delle opzioni è AFNetworking. AFURLConnectionOperation consente inoltre di eseguire facilmente lo streaming di caricamenti e download, gestire le sfide di autenticazione, monitorare il caricamento e scaricare i progressi e controllare il comportamento o le richieste di memorizzazione nella cache.

0

annotato: self.progressionBalance.progress = 5.0/10.0;

è necessario impostare il decimale.

Problemi correlati