在我的 iPhone 应用程序中,我正在从 FTP 服务器下载一些数据。显示我正在使用的操作UIActivityIndicator
。如果我放在UIProgressView
那里而不是UIActivityIndicator
,那将更合适。UIProgressView
下载一些数据时如何使用?谁能给我一个教程链接或示例代码?提前致谢。
问问题
60948 次
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
这很简单。您只需要设置适当的属性progress
值UIProgressView
。
在您的委托中,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 回答