如何获得适当的UIWebView的内容高度?(how to get proper UIWebView

2019-09-21 12:33发布

我在查看和滚动型这视图中添加一个UIWebView。

我想要得到的UIWebView内容的框架。 所以,我可以设置帧来查看和滚动型?

我知道我们可以通过使用JavaScript得到的高度。 正如下面提及:

float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];

但是,当我旋转视图,并重新计算在UIWebView的内容的高度didRotateFromInterfaceOrientation::(UIInterfaceOrientation)fromInterfaceOrientation方法,那么内容高度增加。

所以,请建议我怎样才能得到适当的高度时,我是旋转的方向是什么?

谢谢。

Answer 1:

采用此方法:

- (void) webViewDidFinishLoad:(UIWebView *)webView{
    CGRect frame = wvContent.frame;
    CGSize fittingSize = [wvContent sizeThatFits:CGSizeZero];
    frame.size = fittingSize;
    wvContent.frame = frame;
}

然后调用此方法每次设备旋转:

- (void) reloadContent
{
    CGRect frame = wvContent.frame;
    frame.size.height = 1;
    frame.size.width = wvContent.frame.size.width; // you should change webview's width here.
    wvContent.frame = frame;

    [wvContent loadHTMLString:yourHTML baseURL:nil]; // reload webview
}

希望帮助:)



Answer 2:

请确保您检索高度时加载的所有内容。

您可以添加一个方法来计算高度UIWebView的委托方法

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];
}


文章来源: how to get proper UIWebView content height?