内容更改时WKWebView不会调整大小

Lud*_*uda 6 iphone ios swift wkwebview

内容更改时WKWebView没有调整大小.

这是一段代码:

@IBOutlet weak var containingView: UIView!
var webView: WKWebView! 

override func viewDidLoad()
{
    super.viewDidLoad()

    let contentController = WKUserContentController();
    self.webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), configuration: WKWebViewConfiguration())
    self.webView.autoresizingMask = [.FlexibleHeight]
    self.webView.loadHTMLString(__, baseURL: __))
    self.webView.scrollView.bounces = false
    self.webView.scrollView.scrollEnabled = false

    self.containingView.addSubview(self.webView)
}
Run Code Online (Sandbox Code Playgroud)

应该添加什么功能,以便拦截更改的内容大小并相应地更改containsView大小?

Alo*_*lok -4

从概念上讲,在 Objective C 中你应该像下面那样做。

两件事:确保具有以下属性:

self.webView.scalesPageToFit = YES;
self.webView.contentMode = UIViewContentModeScaleAspectFit;
Run Code Online (Sandbox Code Playgroud)

最后计算 webView 内容高度:- webView.isLoading是最重要的属性之一。实际上,在对 Web url 的单次调用中,它会被调用多次。

- (void)webViewDidFinishLoad:(UIWebView *)webView{
if (webView.isLoading == NO)// as it is called multiple times so wait untill last call
{
 CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
}

}
Run Code Online (Sandbox Code Playgroud)

这就是计算网络视图高度的方法。

您可以在这里查看,因为 WKWebView 没有删除功能,您可以使用它来获取内容大小,而不是使用 KVO:

KVO 示例 也许会对你有更多帮助!