WKWebView添加为子视图

时间:2017-09-10 11:56:11

标签: ios iphone swift uiview wkwebview

从iOS 8.0+开始,我应该使用WKWebView,但在official Apple documentation中,他们通过将视图设置为WKWebView来添加它。我需要将其添加为子视图,原因有很多。

  1. 我必须在WKWebView上方添加按钮/标签。
  2. 我可以通过在故事板上添加UIView然后按代码将其设置为WKWebView来添加它,它看起来更整洁,然后按代码添加。
  3. 我的代码:

    @IBOutlet weak var container: UIView!
    
    private var wkWebView: WKWebView!
    
    override func loadView() {
        let webConfig = WKWebViewConfiguration()
        wkWebView = WKWebView(frame: .zero, configuration: webConfig)
        wkWebView.uiDelegate = self
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        container = wkWebView
    
        let url = URL(string: "https://google.com")
        let request = URLRequest(url: url!)
        wkWebView.load(request)
    }
    

    我试过这个:WKWebView Add to SubView

    我还尝试了使用nil指针崩溃的container.addSubview方法。

    每次加载应用时,都会出现黑屏。

    有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您应该将WKWebView的实例添加为给定视图的子视图:

view.addSubview(wkWebView)

您可以设置其框架,为其添加约束等,就像使用UIView一样。