设备轮换后WKWebview变为空白

时间:2017-08-24 07:00:36

标签: ios swift3 wkwebview screen-rotation

我正在制作包含多个子视图的滚动视图,包括collectionView,webView和普通UIview。据我所读,不建议将webview放在scrollview中。但是在滚动视图中添加webview作为子视图仍然可以。

要求是webview将动态加载onClick上的内容。因此,首先,尝试根据内容大小动态调整webview的高度存在一些问题。每次旋转后,高度会添加额外的像素。但不知何故设法使用viewDidLayoutSubviews()中的webview.sizeToFit()使其工作。

但现在的问题是,在每两次旋转设备后,webview的内容就会消失。内容应该仍然存在,因为webview的框架大小在旋转后没有变化,只是里面的文本消失了。

为什么webview在旋转后显示为空白没有其他错误。这是我的viewdidlayoutsubview。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    webView.frame.size.height = 1
    webView.frame.size = webView.sizeThatFits(.zero)
    webView.sizeToFit()
}

不确定如何解决。

2 个答案:

答案 0 :(得分:0)

我将在这里回答,因为上次的解决方案仍然适用于此。在覆盖功能 viewWillTransition 中刷新视图布局。根据苹果的文档,“UIKit在改变呈现的视图控制器视图的大小之前调用此方法”。所以我在更改方向之前刷新了所有子视图。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator){
   super.viewWillTransition(to: size, with: coordinator)
   //code to refresh the views
}

答案 1 :(得分:0)

只需在wkwebview代码下面添加此行

我命名为var = webView

webView.autoresizingmask = [.flexiblewidth,.flexibleheight]

希望它能起作用。