获取UIWebView的显示内容的高度
2016-08-31 09:36
344 查看
转载自标哥博客 http://www.huangyibiao.com/archives/1341
iOS UIWebView如何获取到内容的高度呢?我们经常会遇到项目中需要使用UIWebView来加载H5页面,但是页面的高度并不确定,而我们前端需要根据内容的高度呈现出来,且不允许webview滚动。
常见的场景可能是在cell中嵌套了UIWebview,因此需要保证取得到正确的web内容的高度才能计算出cell的准确的高度;还有可能是在tableview的header需要呈现webview加载的内容,下面才是问题列表等,这些都需要知道准确的内容高度。
![](http://www.huangyibiao.com/wp-content/uploads/2016/08/74721372211625.jpg)
通过JS来获取高度:
但是问题又来了,第一次获取到的高度可能不是正确的,比如有图片的时候,内容先加载出来了,取得的高度就不正确了。
因此,通常会调用几次,并限制次数,如果高度出现不等,说明又变化了,则需要重新构建或者更新UI!
iOS UIWebView如何获取到内容的高度呢?我们经常会遇到项目中需要使用UIWebView来加载H5页面,但是页面的高度并不确定,而我们前端需要根据内容的高度呈现出来,且不允许webview滚动。
常见的场景可能是在cell中嵌套了UIWebview,因此需要保证取得到正确的web内容的高度才能计算出cell的准确的高度;还有可能是在tableview的header需要呈现webview加载的内容,下面才是问题列表等,这些都需要知道准确的内容高度。
![](http://www.huangyibiao.com/wp-content/uploads/2016/08/74721372211625.jpg)
解决办法
通过JS来获取高度:document.body.offsetHeight;
但是问题又来了,第一次获取到的高度可能不是正确的,比如有图片的时候,内容先加载出来了,取得的高度就不正确了。
因此,通常会调用几次,并限制次数,如果高度出现不等,说明又变化了,则需要重新构建或者更新UI!
实现代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #pragma mark - UIWebViewDelegate - (void)webViewDidFinishLoad:(UIWebView *)webView { CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue]; if (self.webViewHeight != height && self.count <= 3) { self.webViewHeight = height; self.count++; [self updateUI]; } } - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { self.webViewHeight = webView.scrollView.contentSize.height; return YES; } |
相关文章推荐
- iOS UIWebView 获取内容实际高度,关闭滚动效果
- UIWebView 获取内容实际高度,关闭滚动效果
- iOS7,iOS8,iOS9 UIWebView获取内容高度终极解决方案
- js 获取浏览器显示内容的宽度和高度
- iOS UIWebView 获取内容实际高度,关闭滚动效果
- 根据内容获取UIWebView的高度
- UIWebView如何获取内容高度
- iOS UIWebView 获取内容实际高度,关闭滚动效果
- iOS7,iOS8,iOS9 UIWebView获取内容高度终极解决方案
- UIWebView获取内容的高度
- UIWebView如何获取内容高度
- 获取UIWebView的内容高度
- UIWebView的显示内容的高度
- UIWebView如何获取内容高度
- iOS UIWebView 获取内容实际高度,关闭滚动效果
- 获取UIWebView的内容高度
- UIWebView 获取内容高度
- 获取UIWebView的内容高度(精准) - 遇到的坑
- 获取屏幕的宽高度and横屏显示
- 获取IE可见高度和内容高度 记录