Здравейте всички IM използвате лентата за напредъка за посочване насъстоянието на анализа на xml в моя app.but не показва стъпка по стъпка актуализиране, вместо лентата за напредък се зарежда след приключване на целия анализ на xml, дотогава е останало и не показва никакъв прогрес.като да реши този проблем .ко някой може да ми помогне, моля. Използвам следния код
IBOutlet UIProgressView * threadProgressView;
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)1/(float)10);
[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO];
}
else{
/* something else */
}
}
Отговори:
1 за отговор № 1Създайте таймер на главната нишка за всеки 1/10 от секундата. Натискайте го върху функцията "makeMyProgressBarMoving".
myTimer = [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:YES];
След това редактирайте функцията си така, че да изглежда така:
- (void)makeMyProgressBarMoving {
float actual = [threadProgressView progress];
if (actual < 1) {
threadProgressView.progress = actual + ((float)1/(float)10);
return;
}
//if you got here that means the progress view is greater than 1 so now you can kill your timer that you had running every 1/10th of a second.
[myTimer invalidate];
}