2016-04-20 7 views
0

In UIView Ich habe eine UIProgressView genommen, um den Fortschritt der Daten anzuzeigen, die vom Server heruntergeladen wurden, und um die Daten anzuzeigen, die ich genommen habe, UITableView. Der Webservice ist via Polling, also welche Daten geladen werden, ich lade sie in eine UITableView. Aber wenn Benutzer scrollt die UITableView die ProgressBar pausierte seinen Fortschritt, aber wenn ich wieder meine manuelle Scroll von UITableView zu dieser Zeit wieder die Fortschrittsbalken beginnt seinen Fortschritt von der letzten pausierten Position.UIProgressView pausiert Fortschritt, wenn Benutzer UITableView in iOS scrollen

-Code, den ich geschrieben habe:

einen Ausgang genommen:

IBOutlet UIProgressView *pgrsVw; 

Wenn ich meinen Web-Service-Aufruf am Start:

pgrsVw.progress = 0.0; 
pgrsVw.hidden=false; 
[self performSelectorOnMainThread:@selector(makeMyProgressBarMoving) withObject:nil waitUntilDone:NO]; 

nun den Fortschritt zeigen:

- (void)makeMyProgressBarMoving 
{ 
    float actual = [pgrsVw progress]; 
    if (actual < 1) 
    { 
     pgrsVw.progress = actual + PROGRESSOFDATA; 
     [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO]; 
    } 
    else 
    { 
     pgrsVw.progress=1.0; 
     pgrsVw.hidden=true; 
    } 
} 

Jetzt, wenn das Herunterladen der Daten abgeschlossen ist:

Antwort

1

Ich habe gerade meinen Timer-Code geändert, jetzt funktioniert es gut. Das bedeutet, wenn Daten im Hintergrund geladen werden, bewegt sich der Fortschrittsbalken ebenfalls, wenn der Benutzer die Tabellenansicht scrollt.

Geänderte Code:

NSTimer *timer = [NSTimer timerWithTimeInterval:0.10 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO]; 
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; 
+0

Danke für die Antwort paaren, Alles, was ich von der Zahl der Stimmen erraten kann für diese Antwort ist, dass es sehr weniger Leute, die Fortschrittsbalken in UITableViewCells gelten. –