我正在尝试将NSURLConnection对象与UIProgressView集成,因此我可以在后台进行文件下载时更新用户.
我创建了一个单独的对象来在后台下载文件,我在确定如何使用正确的值更新UIProgressView对象中的progress属性时遇到了问题.这可能是非常简单的事情,但我无法通过谷歌搜索来解决这个问题.
这是我的代码:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[self.resourceData setLength:0];
self.filesize = [NSNumber numberWithLongLong:[response expectedContentLength]];
NSLog(@"content-length: %d bytes", self.filesize);
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.resourceData appendData:data];
NSNumber *resourceLength = [NSNumber numberWithUnsignedInteger:[self.resourceData length]];
NSLog(@"resourceData length: %d", [resourceLength intValue]);
NSLog(@"filesize: %d", self.filesize);
NSLog(@"float filesize: %f", [self.filesize floatValue]);
progressView.progress = [resourceLength floatValue] / [self.filesize floatValue];
NSLog(@"progress: %f", [resourceLength floatValue] / [self.filesize floatValue]);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,resourceData成员变量在下载文件数据时保存文件数据.该文件大小成员变量保存文件的完整尺寸,在其Content-Length头我的web服务返回.
这一切都很好,我继续按照我的意愿多次执行didReceiveData下载数据,但是当我尝试计算进度值时,没有返回适当的值.请参阅下面的示例,了解我在控制台日志中获得的一小部分示例:
content-length: 4687472 bytes
resourceData length: 2904616
filesize: …Run Code Online (Sandbox Code Playgroud) 我正在使用UIWebView加载网页.
有3个问题:
1.当UIWebView加载页面时,是否可以跟踪百分比进度?
2.我注意到当Safari加载网页时,URL文本字段显示蓝色背景进度指示器,告诉用户加载网页的百分比.这是什么技术?
3.我知道有财产scalePageToFit
scalesPageToFit一个布尔值,用于确定网页是否缩放以适合视图,用户可以更改比例.
我尝试将其设置为YES,但看起来它不在公共API中,我的应用程序停止了黑屏,我不确定是什么问题?
在我的应用程序中,我有一个UIViewController,其中包含UIWebView和工具栏作为子视图.工具栏有一个UITextField用于地址.加载页面时,地址字段应指示加载外部链接时网页的加载进度,如Safari的地址栏或iOS的Facebook应用程序.
我面临的问题是我无法找到一种方法来显示加载时页面的进度,使地址字段(UIText字段)填充颜色.
有没有办法做到这一点或已经为此做出的组件?