20

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

4

5 回答 5

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{



        }

    } 

也给出您的评论以获得答案。对你有用吗?

于 2011-09-14T12:05:08.483 回答
4

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

在您的委托中,NSURLConnection您应该收到您正在等待下载和更新的数据progress量。Progress由一个介于 0.0 和 1.0(含)之间的浮点值表示,其中 1.0 表示任务完成。

于 2011-09-14T07:36:36.670 回答
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);
}
于 2011-09-14T07:54:52.197 回答
2

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

于 2012-12-24T10:05:29.397 回答
0

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

你必须设置小数。

于 2017-10-23T07:57:17.593 回答