WKWebView 添加到子视图

Posted

技术标签:

【中文标题】WKWebView 添加到子视图【英文标题】:WKWebView Add to SubView 【发布时间】:2014-09-24 21:49:00 【问题描述】:

我可以使用以下代码以编程方式将 。如何将 WKWebView 添加到通过 Interface Builder 添加的视图 containerView2?

import UIKit
import WebKit

class ViewController: UIViewController 

@IBOutlet var containerView : UIView?
@IBOutlet weak var containerView2: UIView!

var webView: WKWebView?

override func loadView() 

    super.loadView()

    self.webView = WKWebView()

    self.webView?.frame = CGRectMake(50, 50, 200, 200)
    self.webView?.sizeToFit()
    self.containerView = self.webView!
    //how can I set a View (containerView2) added by Interface Builder =  to self.webView!

    self.view.addSubview(self.containerView!)


override func viewDidLoad() 
    super.viewDidLoad()

    var url = NSURL(string:"http://www.google.com")
    var req = NSURLRequest(URL:url)
    self.webView!.loadRequest(req)


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.


【问题讨论】:

【参考方案1】:

如果 containerView2 是通过 Interface Builder 创建的,而 containerView 基本上是您的 WKWebView loadView() 方法可能如下所示:

    override func loadView() 
        super.loadView()

        webView = WKWebView()
        containerView = self.webView!

        containerView.frame = containerView2.frame
        containerView2.addSubview(containerView)
    

当然,您可以为自己的观点取更好的名字。例如,“父”元素可以称为containerView,而您的WKWebView 可以称为webView。通过这种方式,代码变得更具可读性:

    override func loadView() 
        super.loadView()

        webView = WKWebView()

        if (webView != nil) 
            webView!.frame = containerView.frame
            containerView.addSubview(webView!)
        
    

【讨论】:

以上是关于WKWebView 添加到子视图的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView 添加为子视图

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

将标题视图添加到 WKWebView ScrollView

ios - 将子视图添加到 JS 对话框下方的 WKWebView

隐藏WKWebView避免VoiceOver识别ios

将具有多个子视图的视图截图为 wkwebview