WkWebView滚动到底部内容不可见且自动回弹该如何解决
你的WKWebView约束写法逻辑没有错误,不需要手动修改webView高度,该问题通常是iOS系统对滚动视图的自动内边距调整、父容器约束适配错误导致的,可按以下步骤修复:
- 关闭滚动视图自动内边距调整
在WKWebView初始化完成后添加如下配置:
// iOS 11及以上版本使用 webView.scrollView.contentInsetAdjustmentBehavior = .never // iOS 10及以下版本,在当前ViewController中添加 // self.automaticallyAdjustsScrollViewInsets = false
- 校验webView父容器约束
确认webViewContainer的底部约束是绑定到父视图的底部,而非安全区底部。如果需要适配全面屏底部安全区,可给webView的滚动视图单独添加底部内边距:
let bottomSafeInset = UIApplication.shared.windows.first?.safeAreaInsets.bottom ?? 0 webView.scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: bottomSafeInset, right: 0)
- 移除冗余代码
你已经关闭了translatesAutoresizingMaskIntoConstraints,初始化时传入的customFrame会被后续约束完全覆盖,属于无效代码,可简化初始化逻辑:
let webConfiguration = WKWebViewConfiguration() self.webView = WKWebView(frame: .zero, configuration: webConfiguration) webView.translatesAutoresizingMaskIntoConstraints = false self.webViewContainer.addSubview(webView) addConstraints(to: webView, with: webViewContainer)
如果完成以上操作后问题仍存在,可检查加载的HTML文件的viewport配置,添加适配全面屏的参数:<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
内容的提问来源于stack exchange,提问作者Bhulku Jivan
相关产品推荐
相关产品推荐

