0

iPhoneアプリケーションからWebサーバーに文字列を送信しています。UIProgressViewを使用してリクエストの進行状況を表示しています。以下は私のコードです:

  -(IBAction)sendToServer:(id)sender{

NSString *url = [RequestUtil getWebURL];
NSString *jsonString = [JSONUtil jsonRunData: self.runDetails];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:url]]; 
[request setTimeOutSeconds:60];
[request setPostValue:jsonString forKey:@"jsondata"];
[request setUploadProgressDelegate:myProgressIndicator];
[request setDelegate:self]; 
[request startAsynchronous];
progressTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(increaseAmount) userInfo:nil repeats:YES];
 }

 - (void)requestFailed:(ASIHTTPRequest *)request{
   self.myProgressIndicator.hidden = TRUE;
 //    alert
 }

 - (void)requestFinished:(ASIHTTPRequest *)request { 
   myProgressIndicator.progress = 1.0;
    // alert
 }

 -(void) increaseAmount{
progressNumber = progressNumber+0.2;
if(progressNumber <= 0.9){
    myProgressIndicator.progress = progressNumber;
}else {
    [progressTimer invalidate];
    progressNumber = 0.0;
}
 }

サーバーに送信ボタンを押すと、sendToServerが呼び出されます。UIProgressViewが表示されます。問題は、進行状況ビューが表示されると、進行状況バーがすぐにいっぱいになり、次に再開してタイマーに作用することです。プログレスビューがタイマーに代わって動作を開始する前にプログレスバーを埋めるのはなぜですか?

4

1 に答える 1

1

I know this is an old question and you've probably moved on, but I suspect that the source of the problem is the fact that the progress property is animated by default. Call [myProgressIndicator setProgress:0.0 animated:NO] prior to showing the progress view.

于 2012-04-11T17:04:34.833 に答える