在UIView
我已经使用一个UIProgressView
来显示从服务器下载的数据的进度,并显示我采用UITableView
的数据。 Web服务是通过轮询,所以正在加载数据,我将其加载到UITableView
。但是,当用户滚动UITableView
ProgressBar
暂停其进度时,但是当我再次停止手动滚动UITableView
时,进度条将从上次暂停位置开始进度
我写的代码:
选择了一个出口:
IBOutlet UIProgressView *pgrsVw;
当我开始使用网络服务时:
pgrsVw.progress = 0.0;
pgrsVw.hidden=false;
[self performSelectorOnMainThread:@selector(makeMyProgressBarMoving) withObject:nil waitUntilDone:NO];
现在展示进展:
- (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;
}
}
现在数据下载完成时:
pgrsVw.progress=1.0;
答案 0 :(得分:1)
我刚刚更改了我的计时器代码,现在工作正常。这意味着当数据在后台加载时,当用户滚动tableview时,进度条也会移动。
更改了代码:
NSTimer *timer = [NSTimer timerWithTimeInterval:0.10 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];