当前位置:   MFC > 正文

如何在加载UIWebView时使用UIProgressView?

iphone,uiprogressview,webview,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我正在开发一个应用程序,我在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错误.

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/MFC/detail/21642
推荐阅读
相关标签
  

闽ICP备14008679号