it-swarm.it

come utilizzare la barra di avanzamento nell'app per iPhone

Nella mia app per iPhone sto scaricando alcuni dati da un server FTP. Per mostrare l'azione che sto usando UIActivityIndicator. Se metto UIProgressView lì invece di UIActivityIndicator, sarà più appropriato. Come si usa UIProgressView durante il download di alcuni dati? Qualcuno può darmi un link tutorial o un codice di esempio? Grazie in anticipo.

20
Ravi

per prima cosa create IBOutlet nel file .h

IBOutlet UIProgressView * threadProgressView;

Quindi, nel file .m in viewdidload impostare prima il progresso su 0.0 e 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?

41
Dhaval Rathod

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

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

4
Nekto

È possibile visualizzare l'avanzamento della barra di avanzamento con questa 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);
}
4
Ketan Shinde

Una delle opzioni è AFNetworking . AFURLConnectionOperation consente inoltre di eseguire facilmente il flusso di upload 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.

2
SachinVsSachin

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

devi impostare il decimale.

0
anson