WebKitView 不遵守自动布局规则
WebKitView not adhering to auto layout rules
我想将 WKWebView
放在 UIView
中,并在周围填充一些内容。比方说 50 像素。这是在 Interface Builder 中的样子:
不幸的是,当 运行:
时,应用程序的行为不符合预期
代码如下:
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var webView: WebView!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let url = "http://apple.com"
webView.loadUrl(string: url)
}
}
class WebView: WKWebView {
required init?(coder: NSCoder) {
if let _view = UIView(coder: coder) {
super.init(frame: _view.frame, configuration: WKWebViewConfiguration())
autoresizingMask = _view.autoresizingMask
} else {
return nil
}
}
func loadUrl(string: String) {
if let url = URL(string: string) {
load(URLRequest(url: url))
}
}
}
什么可能导致这种问题,我该如何解决?
非常感谢!
由于您是在 Storyboard 中设置的,只需删除 required init?(coder: NSCoder)
或使用:
required init?(coder: NSCoder) {
super.init(coder: coder)
}
我想将 WKWebView
放在 UIView
中,并在周围填充一些内容。比方说 50 像素。这是在 Interface Builder 中的样子:
不幸的是,当 运行:
时,应用程序的行为不符合预期代码如下:
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var webView: WebView!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let url = "http://apple.com"
webView.loadUrl(string: url)
}
}
class WebView: WKWebView {
required init?(coder: NSCoder) {
if let _view = UIView(coder: coder) {
super.init(frame: _view.frame, configuration: WKWebViewConfiguration())
autoresizingMask = _view.autoresizingMask
} else {
return nil
}
}
func loadUrl(string: String) {
if let url = URL(string: string) {
load(URLRequest(url: url))
}
}
}
什么可能导致这种问题,我该如何解决?
非常感谢!
由于您是在 Storyboard 中设置的,只需删除 required init?(coder: NSCoder)
或使用:
required init?(coder: NSCoder) {
super.init(coder: coder)
}