WKWebViewがコード上からしか使用できないけどAutoLayoutを使っていい感じにしたい。
具体的には任意のUIViewへ位置とサイズを合わせて表示したい。
サンプルソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | class ViewController: UIViewController { // WKWebViewをこのビューにぴったり合わせて表示する @ IBOutlet weak var webBaseView: UIView! var webview: WKWebView = WKWebView() override func viewDidLoad() { super .viewDidLoad() // レイアウトの基準となる親ViewへWKWebViewを追加 webBaseView.addSubview( self .webview) // AutoLayoutを使用する webview.translatesAutoresizingMaskIntoConstraints = false // 上端をwebBaseViewへ合わせる webBaseView.addConstraint(NSLayoutConstraint( item: self .webview, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: webBaseView, attribute: NSLayoutAttribute.top, multiplier: 1.0, constant: 0) ) // 下端をwebBaseViewへ合わせる webBaseView.addConstraint(NSLayoutConstraint( item: webview, attribute: NSLayoutAttribute.bottom, relatedBy: NSLayoutRelation.equal, toItem: webBaseView, attribute: NSLayoutAttribute.bottom, multiplier: 1.0, constant: 0) ) // 左端をwebBaseViewへ合わせる webBaseView.addConstraint(NSLayoutConstraint( item: self .webview, attribute: NSLayoutAttribute. left , relatedBy: NSLayoutRelation.equal, toItem: webBaseView, attribute: NSLayoutAttribute. left , multiplier: 1.0, constant: 0) ) // 右端をwebBaseViewへ合わせる webBaseView.addConstraint(NSLayoutConstraint( item: webview, attribute: NSLayoutAttribute. right , relatedBy: NSLayoutRelation.equal, toItem: webBaseView, attribute: NSLayoutAttribute. right , multiplier: 1.0, constant: 0) ) } } |
iOS9 以降は以下の記述で問題ない
http://qiita.com/hirothings/items/fa487ac31ff4283893ca
既に(2016/12/5時点)iOS8のシェアほとんどないみたいなんだよね
新しい書き方でもいいかなー