在我的应用中,我正在使用WebKit WebView在视图控制器中加载页面,并且Viewcontroller具有大型导航控制器。在查看时,DidLoad大导航栏显示良好。
此时,当我开始使用本地HTML文件加载WebView时。 加载此WebView之后,无需任何用户交互,ViewController会自动向上滚动,以使导航栏缩小为实际的小尺寸窗体。
答案 0 :(得分:1)
是的,如果要一直设置大型导航栏,则这是导航栏的默认行为,那么必须使用自定义导航栏。创建自己的导航栏。谢谢
答案 1 :(得分:1)
使用viewLayoutMarginsDidChange()
会对您有所帮助。使用此功能,您可以在每个视图中检查视图大小是否已更改,如果可以,则可以在此处设置原始导航标题的大小,所以不用我添加的内容,在下面解析您的导航栏框架值。
var didChange = false
override func viewLayoutMarginsDidChange() {
if didChange {
print("Height : - \
(self.navigationController?.navigationBar.frame.size.height)")
// set NavigationBar Height here
self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width:
UIScreen.main.bounds.width, height: 96.0)
didChange.toggle()
}
}
答案 2 :(得分:1)
尝试获取wkWebView.srollView
中scrollViewDidScroll
的滚动事件,看看是否有滚动事件。
或者,在加载WebView时禁用WKWebView.scrollView.scrollEnabled
,并在加载完成后将其启用
答案 3 :(得分:1)
在contentInsetAdjustmentBehavior
方法中将ScrollView
的{{1}}的{{1}}属性更改为WebView
。
.never
答案 4 :(得分:0)
您可以尝试:
webView.scrollView.contentInsetAdjustmentBehaviour = .never