当用户在iOS中滚动UITableView时,UIProgressView暂停进度

时间:2016-04-20 15:24:20

标签: ios objective-c uitableview uiprogressview

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;

1 个答案:

答案 0 :(得分:1)

我刚刚更改了我的计时器代码,现在工作正常。这意味着当数据在后台加载时,当用户滚动tableview时,进度条也会移动。

更改了代码:

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