滚动视图中的WKWebView

Ala*_*oza 2 scroll webview ios swift

如何将WKWebView放在Scroll View中,考虑到Web View之后必须包含其他元素。

. View ... Scroll View ....... ImageView ....... WKWebView ....... Button

查看演示图片

  • 问题1:禁用WKWebView的滚动
  • 问题2:设置WKWebView的完整内容高度

检查我的样本项目

Gle*_*enn 6

如果您打算获取html的内容高度WKWebView以使其在内部不可滚动UIScrollView,请继续阅读。

您需要观察(通过委托)webView的内容高度。我正在为您提供这些步骤,因为您完全知道自己在做什么,并且快要到了。

在您的webView高度限制之外制作插座

@IBOutlet weak var constraint_WebViewHeight: NSLayoutConstraint!
Run Code Online (Sandbox Code Playgroud)

订阅webView的代表

这将让您知道(您的控制器在您的webView完成网站内容的加载后。

self.webView.navigationDelegate = self
Run Code Online (Sandbox Code Playgroud)

符合协议

didFinish navigationWKNavigationDelegate,您可以调整webView高度约束的常量。如果需要,放一些动画:)

extension ViewController: WKNavigationDelegate {
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
            self.constraint_WebViewHeight.constant = webView.scrollView.contentSize.height
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,解决您的约束。

一种。删除您的imageView底部约束。b。将底部约束添加到scrollView的保存按钮。

这将使您的scrollView可滚动。

瞧!这产生了这个结果。

在此处输入图片说明

我希望这有帮助!

  • 它真的解决了问题,我很感激..谢谢! (2认同)