如何动态更改webview的高度根据HTML文本

时间:2013-02-05 14:14:09

标签: iphone uitableview uiwebview

我想增加webview的大小,根据Html文本行,但是我的网页视图大小没有正确显示,我在固定框架中显示内容,稍后当用户选择行时我需要扩展符合的单元格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);
    }

    }

1 个答案:

答案 0 :(得分: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:)。

P.S。:如果你想快速检查,你也可以尝试:

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

这也应该有用,但上面的版本更便携。