2011-09-14 8 views
20

W aplikacji na telefon iPhone pobieram niektóre dane z serwera FTP. Aby wyświetlić akcję, używam UIActivityIndicator. Jeśli wstawię tutaj UIProgressView zamiast UIActivityIndicator, będzie to bardziej odpowiednie. Jak korzystać z UIProgressView podczas pobierania niektórych danych? Czy ktoś może mi podać link do tutoriala lub przykładowy kod? Z góry dziękuję.Sposób korzystania z paska postępu w aplikacji iPhone

+0

Czy używasz NSURLConnection- metod? do pobrania frontu ftp? – Ketan

+0

Wypróbuj tę bibliotekę HUD dla iOS w szybkim https://github.com/shubh10/JustHUD –

Odpowiedz

41

najpierw utworzyć IBOutlet w pliku .h

IBOutlet UIProgressView * threadProgressView; 

Następnie w pliku .m w viewDidLoad najpierw ustawić postępy 0.0 a następnie wywołaj metodę makeMyProgressMoving

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

następnie dodaj poniższą metodę:

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



     } 

    } 

również opisz swoją odpowiedź. czy ci się przydaje?

4

Jest to dość proste. Musisz tylko ustawić odpowiednią wartość właściwości progress z UIProgressView.

W delegacie NSURLConnection powinieneś otrzymać ilość danych, które chcesz pobrać i zaktualizować progress podczas pobierania. Progress jest reprezentowana przez wartość zmiennoprzecinkową z zakresu od 0,0 do 1,0 włącznie, gdzie 1,0 oznacza zakończenie zadania.

+0

czy możesz podać mi przykładowy kod? – Ravi

4

Można wyświetlić postęp paska postępu z tych linii kodu

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

Jedną z opcji jest AFNetworking. AFURLConnectionOperation umożliwia także łatwe przesyłanie strumieniowe i pobieranie, obsługę problemów z uwierzytelnianiem, monitorowanie postępu przesyłania i pobierania oraz kontrolowanie zachowania lub żądań buforowania.

0

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

Musisz ustawić liczbę dziesiętną.

Powiązane problemy