1

UIProgressView を NSURLConnection に追加することは可能ですか? データの長さを取得して int に設定し、その int を他のクラスの UIProgressView に送信するのと同じくらい簡単ですか?

誰かがこれを行う方法を教えてもらえますか? 私を正しい方向に向ける例やリンクはありますか?

ありがとう!!!

4

2 に答える 2

3

あなたのdidReceiveResponse関数では、次のように合計ファイルサイズを取得できます-

_totalFileSize = response.expectedContentLength;

次に、didReceiveData関数で、受信した合計バイト数のカウンターを合計できます-

_receivedDataBytes += [data length];

プログレスバーを正しいサイズに設定するには、次のようにします。

MyProgressBar.progress = _receivedDataBytes / (float)_totalFileSize

didReceiveData関数内またはコード内の他の場所のいずれか)

バイト数を保持する変数をクラスに追加することを忘れないでください!

Progressviewを更新するためにデリゲートを実装する方法は次のとおりです

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    _totalFileSize = response.expectedContentLength;
    responseData = [[NSMutableData alloc] init];
}


-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
   _receivedDataBytes += [data length];
   MyProgressBar.progress = _receivedDataBytes / (float)_totalFileSize;
   [responseData appendData:data];
 }

これがお役に立てば幸いです。

于 2011-12-05T08:13:19.457 に答える