WKWebView 添加为子视图
Posted
技术标签:
【中文标题】WKWebView 添加为子视图【英文标题】:WKWebView add as a subview 【发布时间】:2017-09-10 11:56:11 【问题描述】:从 ios 8.0+ 开始,我应该使用 WKWebView
,但在 official Apple documentation 中,他们通过将视图设置为 WKWebView 来添加它。出于多种原因,我需要将其添加为子视图。
-
我必须在
WKWebView
上方添加按钮/标签。
我可以通过在情节提要中添加UIView
然后通过代码将其设置为WKWebView
来添加它,这样看起来比通过代码添加它更整洁。
我的代码:
@IBOutlet weak var container: UIView!
private var wkWebView: WKWebView!
override func loadView()
let webConfig = WKWebViewConfiguration()
wkWebView = WKWebView(frame: .zero, configuration: webConfig)
wkWebView.uiDelegate = self
override func viewDidLoad()
super.viewDidLoad()
container = wkWebView
let url = URL(string: "https://google.com")
let request = URLRequest(url: url!)
wkWebView.load(request)
我试过这个:WKWebView Add to SubView
我也尝试了container.addSubview
方法,该方法因 nil 指针而崩溃。
每次我加载应用程序时,都会出现黑屏。
有什么想法吗?
【问题讨论】:
你试过容器视图控制器吗? 【参考方案1】:您应该将WKWebView
的实例作为子视图添加到给定视图:
view.addSubview(wkWebView)
您可以设置它的框架、为其添加约束等,就像使用 UIView
一样。
【讨论】:
奇怪的是苹果强迫你在那里使用新版本的 WKWebView,但他们没有将它添加到情节提要中...... @SamuelKodytek 确实很奇怪,我同意。但是,这是一种从代码中执行相同操作的简单(也是唯一)方法。以上是关于WKWebView 添加为子视图的主要内容,如果未能解决你的问题,请参考以下文章
WKWebView 添加到子视图,并将大小设置为等于父视图?