Почему UIProgressView заполняет свой индикатор выполнения первым, когда я пишу myProgressView.hidden = FALSE? - PullRequest
0 голосов
/ 13 октября 2011

Я отправляю строку на веб-сервер из приложения iphone. Я использую 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. Проблема заключается в том, что когда отображается индикатор прогресса, он быстро заполняет свой индикатор выполнения, а затем запускается снова и действует по таймеру. Почему просмотр прогресса заполняет индикатор выполнения, прежде чем он начинает действовать от имени таймера?

1 Ответ

1 голос
/ 11 апреля 2012

Я знаю, что это старый вопрос, и вы, вероятно, пошли дальше, но я подозреваю, что источником проблемы является то, что свойство progress по умолчанию анимировано. Вызовите [myProgressIndicator setProgress: 0.0 animated: NO], прежде чем показывать отображение прогресса.

...