我的故事板上有一个“产品详情”UIViewController
,其中UIWebView
显示“富文本”(基本上是粗体和斜体)。使用字符串(从CoreData
)loadHTMLString
获取来加载Web视图。问题是第一次显示视图时,在呈现Web视图之前至少有一秒的延迟。进一步加载“产品详细信息”视图加载所有加载正常。它只是第一个“产品详细信息”Web视图,需要花时间加载。
这是我尝试过的(没有快乐)
UIWebView
(以预热UIWebView)init
prepare for segue
方法中的网络视图,并将其传递给“产品详细信息”视图控制器。如果其他人遇到这个问题以及他们如何克服它/解决它,我会非常感兴趣。我觉得很奇怪,我在SO上找不到很多类似的问题;我一定是做些蠢事......
注意,我使用的是UIWebView,因此我可以显示富文本。我知道我可以使用其他控件显示富文本,但是使我想要显示的文本的程序只能使用HTML导出富文本。
答案 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)
}