WKWebViewがコード上からしか使用できないけどAutoLayoutを使っていい感じにしたい。
具体的には任意のUIViewへ位置とサイズを合わせて表示したい。
サンプルソース
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のシェアほとんどないみたいなんだよね
新しい書き方でもいいかなー