2011-09-14 4 views
20

내 iPhone 앱에서 FTP 서버에서 일부 데이터를 다운로드 중입니다. 동작을 표시하려면 UIActivityIndicator을 사용하고 있습니다. UIActivityIndicator 대신 UIProgressView을 입력하면 더 적절할 것입니다. 일부 데이터를 다운로드하는 동안 UIProgressView을 어떻게 사용합니까? 아무도 내게 튜토리얼 링크 또는 예제 코드를 줄 수 있습니까? 미리 감사드립니다.iPhone 앱에서 진행률 표시 줄을 사용하는 방법

+0

NSURLConnection- 메서드를 사용하고 있습니까? 이리저리 fron ftp를 다운로드 하시겠습니까? – Ketan

+0

신속한 https://github.com/shubh10/JustHUD에서 iOS 용으로이 HUD 라이브러리를 사용해보십시오 –

답변

41

가 먼저 .H 파일에 함께 IBOutlet을 만들 코드의 다음 줄 진행률 표시 줄의 진행 상황을 표시 할 수 있습니다

IBOutlet UIProgressView * threadProgressView; 

는 다음의 viewDidLoad에서하는 .m 파일에 처음으로 0.0 진행 상황을 설정 makeMyProgressMoving 메서드를 호출하십시오.

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

다음에 아래 방법을 추가하십시오

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



     } 

    } 

또한 답변 검토를 제공합니다. 그게 너에게 유용 할까?

4

매우 간단합니다. 속성 progress의 적절한 값을 UIProgressView으로 설정하면됩니다.

NSURLConnection의 대표단에서 다운로드하는 동안 대기중인 데이터의 양을 받아야하며 다운로드 중에 progress을 업데이트해야합니다. Progress은 0.0과 1.0 사이의 부동 소수점 값으로 나타내며 1.0은 작업 완료를 나타냅니다.

+0

샘플 코드를 제공해 줄 수 있습니까? – Ravi

4

당신은

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

옵션 중 하나는 AFNetworking입니다. AFURLConnectionOperation을 사용하면 업로드 및 다운로드를 쉽게 스트리밍하고 인증 문제를 처리하며 업로드 및 다운로드 진행 상황을 모니터링하고 캐싱 동작 또는 요청을 제어 할 수 있습니다.

0

: self.progressionBalance.progress = 5.0/10.0;

십진수를 설정해야합니다.

관련 문제