iOS webView自适应内容高度(完美版)

/////////////////////////////初始化,self.view是父控件/////////////////////////////////_webView = [[UIWebView alloc] initWithFrame: CGRectMake(0,0, self.view.frame.size.width,0)];

_webView.delegate=self;

_webView.scrollView.bounces=NO;

_webView.scrollView.showsHorizontalScrollIndicator=NO;

_webView.scrollView.scrollEnabled=NO;[_webView sizeToFit];

///////////////////////////////设置内容,这里包装一层div,用来获取内容实际高度(像素),htmlcontent是html格式的字符串//////////////NSString * htmlcontent = [NSString stringWithFormat:@"

%@
", htmlcontent];[_webView loadHTMLString:htmlcontent baseURL:nil];

////////////////////////////////delegate的方法重载////////////////////////////////////////////- (void)webViewDidFinishLoad:(UIWebView *)webView

{//获取页面高度(像素)

NSString * clientheight_str = [webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"];floatclientheight =[clientheight_str floatValue];

//设置到WebView上

webView.frame = CGRectMake(0,0, self.view.frame.size.width, clientheight);//获取WebView最佳尺寸(点)CGSize frame =[webView sizeThatFits:webView.frame.size];

//获取内容实际高度(像素)

NSString * height_str= [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('webview_content_wrapper').offsetHeight + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-top'))  + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-bottom'))"];

floatheight =[height_str floatValue];

//内容实际高度(像素)* 点和像素的比

height = height * frame.height /clientheight;

//再次设置WebView高度(点)

webView.frame = CGRectMake(0,0, self.view.frame.size.width, height);

}


转载自推酷

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容