当前位置:  开发笔记 > IOS > 正文

如何在自定义UIView中正确嵌入WKWebView?

如何解决《如何在自定义UIView中正确嵌入WKWebView?》经验,为你挑选了1个好方法。

在我的项目中,我有一个视图控制器,我想在其他UIView中嵌入WKWebView,这个UIView名为viewForEmbeddingWebView,我在故事板中创建了(图片中的灰色).

在我的View控制器中标题为viewForEmbeddingWebView的灰色视图

我在ViewController中实现了这个逻辑:

import UIKit
import WebKit

class ViewController: UIViewController, WKUIDelegate  {

    var webView: WKWebView!

    @IBOutlet weak var viewForEmbeddingWebView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        webView = WKWebView(frame: viewForEmbeddingWebView.frame, configuration: WKWebViewConfiguration() )
        self.viewForEmbeddingWebView.addSubview(webView)
        self.webView.allowsBackForwardNavigationGestures = true
        let myURL = URL(string: "https://www.apple.com")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)

    }

}

在Simulator中构建并运行后,我看到以下内容: 运行我的代码后

它显示了WKWebView但边界看起来不对(第一种:它不适合viewForEmbeddingWebView的边界,第二种:顶部有一个白色间隙).我已经读过我必须在苹果网站https://developer.apple.com/reference/webkit/wkwebview上使用WKWebView,但他们的例子不是我的情况,因为他们只展示如何处理加载WKWebView的情况ViewController的整个视图.但我需要将它嵌入到另一个视图中,因为我以后还需要另一个ui围绕这个WKWebView.在WKWebView之前有WebView,但是自iOS 8出现以来我们必须使用WKWebView.请帮助,因为我检查了很多材料,但没有找到适合Swift 3和Xcode 8的答案.

我在iOS 10.2中使用Xcode 8和Swift 3.



1> Dave Weston..:

你想像这样初始化WKWebView(Swift 3.0):

webView = WKWebView(frame: viewForEmbeddingWebView.bounds, configuration: WKWebViewConfiguration())
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.viewForEmbeddingWebView.addSubview(webView)

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有