UIWebView第一次在特定的UIViewController中显示时加载速度非常慢

时间:2013-04-06 03:56:41

标签: ios objective-c uiwebview storyboard

我的故事板上有一个“产品详情”UIViewController,其中UIWebView显示“富文本”(基本上是粗体和斜体)。使用字符串(从CoreDataloadHTMLString获取来加载Web视图。问题是第一次显示视图时,在呈现Web视图之前至少有一秒的延迟。进一步加载“产品详细信息”视图加载所有加载正常。它只是第一个“产品详细信息”Web视图,需要花时间加载。

这是我尝试过的(没有快乐)

  1. 在第一个屏幕上显示带有文本的UIWebView(以预热UIWebView)
  2. 当需要显示详情视图时,init prepare for segue方法中的网络视图,并将其传递给“产品详细信息”视图控制器。
  3. 我尝试了在故事板中使用网页视图的各种组合/不在故事板/滚动视图等中
  4. 如果其他人遇到这个问题以及他们如何克服它/解决它,我会非常感兴趣。我觉得很奇怪,我在SO上找不到很多类似的问题;我一定是做些蠢事......


    注意,我使用的是UIWebView,因此我可以显示富文本。我知道我可以使用其他控件显示富文本,但是使我想要显示的文本的程序只能使用HTML导出富文本。

3 个答案:

答案 0 :(得分:6)

这是UIWebView的常见问题。我的解决方法是最初隐藏Web视图(显示某种“Loading ...”指示符),然后将其隐藏在webViewDidFinishLoad:方法中。

答案 1 :(得分:3)

您可以尝试使用OHAttributedLabel的OHASBasicHTMLParser,而不是使用UIWebView显示富文本内容,后者与iOS 6之前的版本向后兼容。

您可以找到其标记解析器here的示例。

答案 2 :(得分:0)

这应该有助于加载:

    var data: Data? = htmlString.data(using: .utf8)

    if let aData = data {

        webView.load(aData, mimeType: "text/html", textEncodingName: "UTF-8", baseURL: NSURL() as URL)
    }

信用:http://iphonedevsdk.com/forum/iphone-sdk-development/23481-why-the-load-delay-with-a-uiwebview-and-local-text.html