【问题标题】:UIProgressbar in Cococa TouchCococa Touch 中的 UIProgressbar
【发布时间】:2010-12-22 10:47:09
【问题描述】:
我想根据从服务器下载的数据量显示一个 UIProgressbar。
我实现的一种方法是创建一个 NSURLConnection 并设置委托。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
给了我预期的ContentLengh
并且在 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
我每次都部分地获取数据,直到所有数据都下载完毕。
但这并没有解决我的问题。
还有其他方法吗?
感谢您的所有建议。
谢谢
【问题讨论】:
标签:
iphone
objective-c
cocoa-touch
uiprogressbar
【解决方案1】:
如果您知道预期的内容长度,只需将您目前收到的总金额除以您将获得的总金额的总和:
// These should be properties of the delegate class
UIProgressView * progressView;
long long expected;
long long gotSoFar;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
gotSoFar += data.length;
progressView.progress = gotSofar / expected;
}
如果您在除法上收到类型警告,请在进行除法之前将每个 long long 投射。