在iOS 5上,UIWebView报告滚动视图的内容大小错误

我已经尝试了一堆“解决方案”但是现在我正试图弄清楚UIWebView的滚动视图的内容大小。 它目前总是返回1024,这是设备的宽度。 这是没有意义的,因为我查询高度,视图是纵向。

以下代码报告高度为1024.00000

-(void)webViewDidFinishLoad:(UIWebView *)webView { float sourcesWebViewHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] floatValue]; NSLog(@"%f", sourcesWebViewHeight); } 

但我只有几行文字。

我会分解最终为我解决的问题。

我不得不把我的内容包装在里面。

 %@ 

执行以下视图确实加载。

 -(void)webViewDidFinishLoad:(UIWebView *)webView { [self layoutSubviews]; webView.scrollView.scrollEnabled = NO; // Property available in iOS 5.0 and later CGRect frame = webView.frame; frame.size.height = 1; // Set the height to a small one. webView.frame = frame; // Set webView's Frame, forcing the Layout of its embedded scrollView with current Frame's constraints (Width set above). frame.size.height = webView.scrollView.contentSize.height; // Get the corresponding height from the webView's embedded scrollView. webView.frame = frame; } 

 -(void) layoutSubviews { [super layoutSubviews]; [body stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat: @"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ", (int)body.frame.size.width]]; } 

最后我的webview做了所有正确的事情来扩展自己的内容。