web-dev-qa-db-ja.com

iPhoneアプリのプログレスバーの使用方法

私のiPhoneアプリでは、FTPサーバーからデータをダウンロードしています。 UIActivityIndicatorを使用しているアクションを表示します。 UIProgressViewの代わりにUIActivityIndicatorを配置すると、より適切になります。データのダウンロード中にUIProgressViewを使用するにはどうすればよいですか?誰でも私にチュートリアルリンクまたはサンプルコードを提供できますか?前もって感謝します。

20
Ravi

まず、.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{



        }

    } 

また、回答のためにレビューを提供します。役に立ちましたか?

40
Dhaval Rathod

とても簡単です。 progressのプロパティUIProgressViewの適切な値を設定するだけです。

NSURLConnectionのデリゲートでは、ダウンロード中にprogressをダウンロードおよび更新するのを待っているデータ量を受け取る必要があります。 Progressは、0.0〜1.0の浮動小数点値で表されます。1.0はタスクの完了を示します。

4
Nekto

これらのコード行でプログレスバーの進行状況を表示できます

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

オプションの1つはAFNetworkingです。 AFURLConnectionOperationを使用すると、アップロードとダウンロードを簡単にストリーミングしたり、認証チャレンジを処理したり、アップロードとダウンロードの進行状況を監視したり、キャッシュの動作やリクエストを制御したりできます。

2
SachinVsSachin

注意:self.progressionBalance.progress = 5.0/10.0;

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

0
anson