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

时间:2011-09-14 07:34:15

标签: iphone objective-c ios xcode uiprogressview

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

5 个答案:

答案 0 :(得分:40)

首先在.h文件中创建IBOutlet

IBOutlet UIProgressView * threadProgressView;

然后在viewdidload中的.m文件中首先将进度设置为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{



        }

    } 

也会给出您的回答。它对你有用吗?

答案 1 :(得分:4)

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

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

答案 2 :(得分:4)

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

-(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);
}

答案 3 :(得分:2)

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

答案 4 :(得分:0)

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

你必须设置小数。