it-swarm.com.de

so verwenden Sie die Fortschrittsleiste in der iPhone-App

In meiner iPhone-App lade ich Daten von einem FTP-Server herunter. Um die Aktion anzuzeigen, verwende ich UIActivityIndicator. Wenn ich UIProgressView anstelle von UIActivityIndicator dort platziere, ist es sinnvoller. Wie verwende ich beim Herunterladen einiger Daten UIProgressView? Kann mir jemand einen Tutorial-Link oder Beispielcode geben? Danke im Voraus.

20
Ravi

zuerst erstellen Sie IBOutlet in der .h-Datei

IBOutlet UIProgressView * threadProgressView;

Setzen Sie dann in der .m-Datei in viewdidload zunächst den Fortschritt auf 0,0 und rufen Sie dann die makeMyProgressMoving-Methode auf

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

dann fügen Sie unten Methode hinzu

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



        }

    } 

gib auch deine bewertung zur antwort. ist es nützlich für dich?

41
Dhaval Rathod

Das ist ganz einfach. Sie müssen nur den entsprechenden Wert der Eigenschaft progress von UIProgressView einstellen.

Im Delegierten von NSURLConnection sollten Sie die Datenmenge erhalten, die Sie zum Herunterladen erwarten, und die progress während des Downloads aktualisieren. Progress wird durch einen Gleitkommawert zwischen einschließlich 0,0 und 1,0 dargestellt, wobei 1,0 den Abschluss der Aufgabe angibt.

4
Nekto

Sie können den Fortschritt des Fortschrittsbalkens mit dieser Codezeile anzeigen

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

Eine der Optionen ist AFNetworking . Mit AFURLConnectionOperation können Sie Uploads und Downloads problemlos streamen, Authentifizierungsherausforderungen bewältigen, den Upload- und Downloadfortschritt überwachen und das Cacheverhalten oder die Caching-Anforderungen steuern.

2
SachinVsSachin

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

sie müssen dezimal einstellen.

0
anson