我從我的iPhone應用程序發送一個字符串到Web服務器。我正在使用UIProgressView來顯示請求的進度。以下是我的代碼:爲什麼UIProgressView在我寫myProgressView.hidden = FALSE時先填充它的進度條?
-(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。問題是,當顯示進度視圖時,它會快速填充進度條,然後重新開始並執行定時器。爲什麼進度視圖在代表計時器開始行動之前填充進度欄?
你設定的初始值是什麼? – BojanG
[myProgressIndicator setProgress:0.0]; – Piscean