2011-09-14 17 views
20

En mi aplicación para iPhone, estoy descargando algunos datos de un servidor FTP. Para mostrar la acción que estoy usando UIActivityIndicator. Si coloco UIProgressView en lugar de UIActivityIndicator, será más apropiado. ¿Cómo uso UIProgressView mientras descargo algunos datos? ¿Alguien puede darme un enlace tutorial o código de ejemplo? Gracias por adelantado.cómo usar la barra de progreso en la aplicación iphone

+0

¿Está usando NSURLConnection- methods? ¿De descarga de fron ftp? – Ketan

+0

Pruebe esta biblioteca de HUD para iOS en https://github.com/shubh10/JustHUD –

Respuesta

41

Primero creas IBOutlet en el archivo .h

IBOutlet UIProgressView * threadProgressView; 

A continuación, en el archivo .m en viewDidLoad establecer primero el progreso a 0,0 y luego llamar al método makeMyProgressMoving

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

a continuación, añadir a continuación el método

- (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{ 



     } 

    } 

también dan su opinión por respuesta. ¿es útil para ti?

4

Es bastante simple. Solo necesita establecer el valor apropiado de la propiedad progress de UIProgressView.

En el delegado de NSURLConnection debe recibir la cantidad de datos que espera descargar y actualizar el progress durante la descarga. Progress está representado por un valor de coma flotante entre 0.0 y 1.0, inclusive, donde 1.0 indica la finalización de la tarea.

+0

rápido ¿Puede darme algún código de muestra? – Ravi

4

Puede mostrar el progreso de la barra de progreso con estas líneas de código

-(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 de las opciones es AFNetworking. AFURLConnectionOperation también le permite transmitir fácilmente cargas y descargas, manejar desafíos de autenticación, supervisar el progreso de carga y descarga, y controlar el comportamiento o las solicitudes de almacenamiento en caché.

0

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

debe establecer el decimal.

Cuestiones relacionadas