UIWebView - 加载内容前的白色背景

时间:2015-03-12 11:56:04

标签: ios xcode swift uiwebview

我有一个问题。我有一个菜单,当我点击它时,它将通过UIWebView从URL远程加载内容。

当我尝试使用模拟器时,在加载内容之前,有一个白色背景,然后加载我的HTML页面(背景为深色)

演示:

https://s3.amazonaws.com/quickcast/6134/84576/quickcast.gif

当我点击" KALENDER"

时,你可以看到白色闪光

如何解决此问题?

我的UIWebView如下所示:

        let myWebView:UIWebView = UIWebView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
        myWebView.loadRequest(NSURLRequest(URL: NSURL(string: "http://website.com/test.html")!))
        self.view.addSubview(myWebView)

谢谢!

3 个答案:

答案 0 :(得分:22)

所以,我所做的是,补充道:

myWebView.opaque = false
myWebView.backgroundColor = UIColor.clearColor()

在控制器处,我从"查看"

取消选中此项

enter image description here

答案 1 :(得分:2)

您无法为webView设置背景颜色。

您应该尝试以下步骤:

<强> 1。在viewDidLoad中编写以下内容 - 设置委托并隐藏webView。

webView.delegate = self

webView.hidden = YES

<强> 2。写代理 - shouldStartLoadWithRequest - 加载开始时隐藏webView。

func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -&gt; Bool {
webView.hidden = YES
return true;
}

第3。写代理 - webViewDidFinishLoad - 加载结束时显示webView。

func webViewDidFinishLoad(webView: UIWebView!) {
webView.hidden = NO
print("Webview did finish load")
}

希望这会对你有帮助....

答案 2 :(得分:-1)

您可以加载自己的html文档,该文档使用您需要的颜色。

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    let htmlString = "<html><body bgcolor=\"#ABCDEF\"></body></html>"
    webView.loadHTMLString(htmlString, baseURL: nil)
}