0

我想增加 webview 的大小,根据 Html 文本行,但是我的 web view 大小没有正确,最初我在固定框架中显示内容,后来当用户选择行时,我需要根据 html 文本扩展单元格,请帮我解决这个问题,我使用的代码是

enter code here  NSLog(@"web view and selected ==== %d ---%d",webView.tag,selectedRow);
//CGFloat webViewHeight = 0.0f;
if (webView.subviews.count > 0) {
    UIView *scrollerView = [webView.subviews objectAtIndex:0];
    if (scrollerView.subviews.count > 0) {
        UIView *webDocView = scrollerView.subviews.lastObject;
        if ([webDocView isKindOfClass:[NSClassFromString(@"UIWebDocumentView") class]])
            webViewHeight = webDocView.frame.size.height;

        NSLog(@"web view height is %d",webViewHeight);
    }

    }
4

1 回答 1

0

要获得实际的 HTML 文档高度,您应该执行以下操作:

NSUInteger height = [[webView stringByEvaluatingJavaScriptFromString:@"getDocHeight()"] intValue];

哪里getDocHeight是:

function getDocHeight() {
  return Math.max(
    Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
    Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
    Math.max(document.body.clientHeight, document.documentElement.clientHeight)
  );
}

为此,您必须等待 HTML 文档完全呈现(即,您的委托已收到webViewDidFinishLoad:)。

PS:如果您想快速检查,您也可以简单地尝试:

    NSUInteger height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] intValue];

这也应该可以,但是上面的版本更便携。

于 2013-02-05T14:29:49.303 回答