如何在iPhone SDK中用Objective-C获取UIWebView的内容高度?

5

可能是重复问题:
如何确定UIWebView的内容大小?

大家好,

我在将htmlString加载到UIWebView时遇到了问题,在iPhone上,我始终将webview的框架高度设置为265。

    webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 41, 320, 265)];

有没有一种属性可以获取UIWebView的内容高度。

如果我只有一两行内容,那么它会在这两行下面看起来很奇怪。如何使其动态变化。请提供任何解决方案。

谢谢, Madan Mohan。


你可能想查看我在一个类似的问题上的答案,该答案不需要任何JavaScript。我的答案 - Ortwin Gentz
1个回答

15

试试这个:

[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"]

在你的webViewDidFinishLoad方法中。


1
如果在加载之前已知高度,我想设置webView的框架高度。给定方法返回的字符串是以像素为单位还是什么? 我想在加载之前设置webView的框架高度,如果我们已经知道了高度。从给定方法返回的字符串是以像素为单位还是其他单位? - Madan Mohan
抱歉没有提到。它是以像素为单位的内容高度。当您获得该值时,可以设置您的webview框架高度。我认为在加载页面之前没有办法知道高度。 - MaxFish
抱歉,感谢您的回复,但问题还没有解决。 - Madan Mohan
即使已经加载,我仍想更改webview框架的高度,该怎么办? - Madan Mohan
如果您正在从字符串加载页面,则必须确保它是正确的HTML文档。这个可以工作: NSString * html = @"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns="http://www.w3.org/1999/xhtml\" lang="it" dir="ltr"><html><head><title>aaaa</title></head><body>Test!</body></html>"; - MaxFish
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接