WkwebView - 页面底部不可见

Posted

技术标签:

【中文标题】WkwebView - 页面底部不可见【英文标题】:WkwebView - bottom part of the page is not visible 【发布时间】:2021-09-14 05:31:19 【问题描述】:

我正在使用 WkWebView 渲染网站。我面临的问题是,如屏幕截图所示,如果我滚动到底部,页面的一部分(最后 2 行)不可见。如果我将滚动条拖到底部,它会显示页面的该部分并自动向上滚动,并且该部分不再对用户可见。我是否需要更新我的 webview 约束或更改 webview 的高度?

这是截图

这里是代码快照

let webConfiguration = WKWebViewConfiguration()

let customFrame = CGRect.init(origin: CGPoint.zero, size: CGSize.init(width: 0.0, height: self.webViewContainer.frame.size.height))
     
self.webView = WKWebView (frame: customFrame , configuration: webConfiguration)
       webView.translatesAutoresizingMaskIntoConstraints = false
       self.webViewContainer.addSubview(webView)
    
    
addConstraints(to: webView, with: webViewContainer)

func addConstraints(to webView: UIView, with superView: UIView) 
    webView.translatesAutoresizingMaskIntoConstraints = false
    let leadingConstraint = NSLayoutConstraint(item: webView, attribute: .leading, relatedBy: .equal, toItem: superView, attribute: .leading, multiplier: 1, constant: 0)
    let trailingConstraint = NSLayoutConstraint(item: webView, attribute: .trailing, relatedBy: .equal, toItem: superView, attribute: .trailing, multiplier: 1, constant: 0)
    let topConstraint = NSLayoutConstraint(item: webView, attribute: .top, relatedBy: .equal, toItem: superView, attribute: .top, multiplier: 1, constant: 0)
    let bottomConstraint = NSLayoutConstraint(item: webView, attribute: .bottom, relatedBy: .equal, toItem: superView, attribute: .bottom, multiplier: 1, constant: 0)
    superView.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint])

任何帮助将不胜感激。

【问题讨论】:

那么你的 bottomConstraint 可能是错误的。 【参考方案1】:

我以前就注意到这种情况。 我会推荐

webView.scrollView.isScrollEnabled = false

网页应该找出视口区域并使用CSS或JS设置其宽度和高度。

大多数 UI 框架默认支持此功能

因此,当您滚动时,滚动发生在网页内,而不是在本机视图中滚动。

【讨论】:

感谢您的回答,但已设置为 false。还有其他建议吗? 你的superview是什么? Tableviewcell 的内容视图?

以上是关于WkwebView - 页面底部不可见的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView 底部视图显示不全

在 iOS WKWebView 中保留“Referer”标头?

iOS-WebView(WKWebView)进度条

为啥 iPhone 6 及更高版本的 wkwebview 不接受底部的点击?

在 iOS 中,当用户滚动浏览 WKWebView 时,如何检测屏幕上可见的 html 元素?

WKWebView 显示灰色背景并且 pdf 内容在 viewcontroller 开关上变得不可见