无法显示添加到WKWebView的子视图

时间:2015-04-02 10:37:48

标签: ios objective-c swift wkwebview

我正在使用Swift和WKWebView为应用创建嵌入式视图。我被困在添加和显示UIProgressView(我的子视图)。

每当我在故事构建器上添加它(在视图顶部)然后运行应用程序时它就不会显示因为我的代码(我将self.view与我创建的WKWebView实例相关联)。

enter image description here

我因此尝试了替代方法并以编程方式添加它,但也无法正常工作。

这是我的代码(对于第一种方法,只是忽略UIProgressView的编程声明):

import UIKit
import WebKit

class SupportWebView: UIViewController, WKNavigationDelegate {
    @IBOutlet var containerView : UIView? = nil
    @IBOutlet var progressView : UIProgressView? = nil

    var webView: WKWebView?

    dynamic var myProgress: Double  = 0
    private var myContext = 0

    override func loadView() {
        super.loadView()
        self.webView = WKWebView()
        self.view = self.webView
        self.webView?.navigationDelegate = self
        self.webView?.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: &myContext)

        let progressView = UIProgressView(progressViewStyle: .Bar)
        progressView.center = view.center
        progressView.progress = 20.0/30.0
        progressView.trackTintColor = UIColor.lightGrayColor()
        progressView.tintColor = UIColor.blueColor()
        self.webView?.addSubview(progressView)
//        self.webView.addSubview(progressView)
    }

我尝试以编程方式将UIProgressView添加到WKWebView视图,但它不起作用..有关如何解决此问题的任何建议吗?它似乎只显示主WKWebView并忽略子视图(它们可能在Web视图渲染之前呈现,因此它们会消失)。

1 个答案:

答案 0 :(得分:0)

我测试了您的代码,并通过将progressView.center = view.center更改为progressView.frame = CGRectMake(100.0, 100.0, 200.0, 5.0)之类的内容来渲染progressView。我没有在故事板上做任何测试。