gpt4 book ai didi

iphone - 加载 UIWebView 时如何使用 UIProgressView?

转载 作者:行者123 更新时间:2023-12-03 18:28:22 26 4
gpt4 key购买 nike

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

但现在我试图在加载过程中显示 UIProgressView(从 0.0 到 1.0),它会随着加载进度动态变化。

我该怎么做?

最佳答案

UIWebView 在正常模式下不会给你任何进度信息。您需要做的是首先使用 NSURLConnection 异步获取数据。当 NSURLConnection 委托(delegate)方法 connection:didReceiveResponse 时,您将获取从 expectedContentLength 获得的数字并将其用作最大值。然后,在委托(delegate)方法 connection:didReceiveData 中,您将使用 NSData 实例的 length 属性来告诉您目前的进度,因此您的进度分数将为 length/maxLength ,标准化为 0.0 到 1.0 之间。

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

两个注意事项:

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

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

使用这种技术,当您知道应该获取多少数据时,您可以显示进度条;当您不知道时,可以显示旋转图标。

关于iphone - 加载 UIWebView 时如何使用 UIProgressView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1900151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com