it-swarm.cn

如何使用iPhone应用程序中的进度条

在我的iPhone应用程序中,我从FTP服务器下载一些数据。显示我正在使用UIActivityIndicator的动作。如果我把UIProgressView放在那里而不是UIActivityIndicator,那将更合适。下载某些数据时如何使用UIProgressView?任何人都可以给我一个教程链接或示例代码吗?提前致谢。

20
Ravi

首先在.h文件中创建IBOutlet

IBOutlet UIProgressView * threadProgressView;

然后在viewdidload中的.m文件中首先将progress设置为0.0,然后调用makeMyProgressMoving方法

    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)recievedData/(float)xpectedTotalSize);
            [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO];
        }
        else{



        }

    } 

也给你的答案评论。对你有用吗?

41
Dhaval Rathod

这很简单。您只需要设置progress的属性UIProgressView的适当值。

NSURLConnection的委托中,您应该收到下载期间等待下载和更新progress的数据量。 Progress由0.0到1.0之间的浮点值表示,其中1.0表示任务完成。

4
Nekto

您可以使用这些代码行显示进度条的进度

-(void) connection:(NSURLConnection *) connection 
didReceiveData:(NSData *) data {
   if (file)
   { 
       [file seekToEndOfFile];
        progressView.progress = ((float)recievedData / (float) xpectedTotalSize);
   } 
     [file writeData:data];
     recievedData += data.length;
     NSLog(@"Receiving Bytes: %d", recievedData);
}
4
Ketan Shinde

其中一个选项是AFNetworking。 AFURLConnectionOperation还允许您轻松地流式上传和下载,处理身份验证挑战,监控上载和下载进度,以及控制缓存行为或请求。

2
SachinVsSachin

注意:self.progressionBalance.progress = 5.0/10.0;

你必须设置小数。

0
anson