2011-09-14 6 views
20

私のiPhoneアプリでは、FTPサーバーからデータをダウンロードしています。アクションを表示するには、UIActivityIndicatorを使用しています。私がUIProgressViewUIActivityIndicatorの代わりに入れた方が適切でしょう。データをダウンロード中にUIProgressViewを使用するにはどうすればよいですか?誰でも私にチュートリアルのリンクやサンプルコードを教えてもらえますか?前もって感謝します。iphoneアプリでプログレスバーを使用する方法

+0

NSURLConnection-メソッドを使用していますか? fron ftpをダウンロードするには? – Ketan

+0

iOS用のこのHUDライブラリをhttps://github.com/shubh10/JustHUDで試してみてください –

答えて

41

のこれらのラインでプログレスバーの進行状況を表示することができます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

あなたが最初にあなたがのviewDidLoadでの.mファイルに次に

IBOutlet UIProgressView * threadProgressView; 

.hファイルにIBOutletを作成するには、最初の0.0に進捗状況を設定し、コード

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

オプションの1つはAFNetworkingです。 AFURLConnectionOperationを使用すると、アップロードとダウンロードのストリーミング、認証の問題の処理、アップロードとダウンロードの進行状況の監視、およびキャッシングの動作や要求の制御が簡単にできます。

0

:self.progressionBalance.progress = 5.0/10.0;

10進数を設定する必要があります。

関連する問題