如何获得适当的UIWebView滚动内容大小?

时间:2014-02-26 15:41:06

标签: ios iphone objective-c uiwebview uiscrollview

我正在尝试在- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType内获取UIWebView滚动内容大小 方法,以便在存在水平滚动时显示箭头图像。

1)我已经尝试webView.scrollview.contentSize来获取滚动内容大小,但即使内容大小较多,也始终会给我webview框架值。

2)我试过

CGSize contentSize = CGSizeMake([[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollWidth;"] floatValue],
                                [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"] floatValue]);

即使是上述第二种方法也没有给出正确的内容大小。

他们是获得准确的webview嵌入式scrollView内容大小的简单方法吗?

3 个答案:

答案 0 :(得分:1)

这不是你希望我猜的答案,但你的方法是错的。

- (BOOL)webView:(UIWebView *)webView should**Start**LoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

您会看到,调用此方法时,会调用它,因为将要启动新请求。此时,UIWebView尚未收到您的页面,因此无法为您提供正确的contentSize。

答案 1 :(得分:1)

也可以尝试使用offsetWidth/offsetHeight

CGSize contentSize = CGSizeMake([[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetWidth;"] floatValue],
                                [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue]);

答案 2 :(得分:0)

看看我刚才写的这篇博文,当时我不得不做类似的事情: http://www.pixeldock.com/blog/set-the-height-of-a-uiwebview-to-the-height-of-its-html-content/