当前位置:  开发笔记 > Android > 正文

如何在加载UIWebView时使用UIProgressView?

如何解决《如何在加载UIWebView时使用UIProgressView?》经验,为你挑选了1个好方法。

我正在开发一个应用程序,我在UIWebView中加载urlrequest,它发生成功.

但是现在我正在尝试在加载过程中显示UIProgressView(从0.0开始到1.0),随着加载的进度动态地改变.

我怎样才能做到这一点?



1> Kevin Hoffma..:

UIWebView在正常模式下不会提供任何进度信息.您需要做的是首先使用NSURLConnection异步获取数据.当NSURLConnection委托方法时connection:didReceiveResponse,您将获取您获得的数字expectedContentLength并将其用作最大值.然后,在委托方法中connection:didReceiveData,您将使用lengthNSData实例的属性来告诉您离您有多远,因此您的进度分数将被length / maxLength归一化到0.0到1.0之间.

最后,您将使用数据而不是URL(在您的connection:didFinishLoading委托方法中)初始化webview .

两个警告:

    expectedContentLengthNSURLResponse 的属性可能是-1(NSURLReponseUnknownLength常量).在这种情况下,我建议抛出一个你关闭的标准UIActivityIndi​​cator connection:didFinishLoading.

    确保每次从NSURLConnection委托方法之一操作可见控件时,都可以通过调用来执行此操作performSelectorOnMainThread:- 否则您将开始获得可怕的EXC_BAD_ACCESS错误.

使用这种技术,当你知道你应该获得多少数据时,你可以显示一个进度条,当你不知道时,你可以显示一个微调器.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有