我正在制作包含多个子视图的滚动视图,包括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()
}
不确定如何解决。
答案 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]
希望它能起作用。