WKWebView 添加为子视图

WKWebView add as a subview

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

  1. 我必须在 WKWebView 上面添加 buttons/labels。
  2. 我可以通过将 UIView 添加到故事板然后通过代码将其设置为 WKWebView 来添加它,这样看起来比通过代码添加它更整洁。

我的代码:

@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

我也试过 container.addSubview 方法,它因 nil 指针而崩溃。

每次我加载应用程序时,都是黑屏。

有什么想法吗?

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

view.addSubview(wkWebView)

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

一样