2014-09-24 24 views
7

Ich kann ein WKWebView programmatisch zu einer Unteransicht mit dem folgenden Code hinzufügen. Wie kann ich WKWebView zur View containerView2 hinzufügen, die über den Interface Builder hinzugefügt wurde?WKWebView Zum SubView hinzufügen

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. 
} 
} 

Antwort

4

Wenn containerView2 über Interface Builder erstellt und containerView ist im Grunde Ihre WKWebViewloadView() Methode aussehen könnte:

override func loadView() { 
     super.loadView() 

     webView = WKWebView() 
     containerView = self.webView! 

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

Und natürlich können Sie bessere Namen für Ihre Ansichten haben. Zum Beispiel könnte das "übergeordnete" Element containerView genannt werden und Ihr WKWebView könnte einfach webView genannt werden. Auf diese Weise wird Code viel besser lesbar:

override func loadView() { 
     super.loadView() 

     webView = WKWebView() 

     if (webView != nil) { 
      webView!.frame = containerView.frame 
      containerView.addSubview(webView!) 
     } 
    } 
Verwandte Themen