首页 > 开发 > iOS > 正文

ios webview自适应实际内容高度4种方法

2018-03-24 23:23:24  来源: 网友分享
//第一种方法
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
	CGFloat webViewHeight=[webView.scrollView contentSize].height;
	CGRect newFrame = webView.frame;
	newFrame.size.height = webViewHeight;
	webView.frame = newFrame;
	_webTablewView.contentSize = CGSizeMake(320, newFrame.size.height + 64 + KWIDTH - 100);
}
//2.执行js语句 直接获取html文档的dom高度
- (void)webViewDidFinishLoad:(UIWebView *)webView{
	CGFloatwebViewHeight =[[webViewstringByEvaluatingJavaScriptFromString:@document.body.offsetHeight]floatValue];
// CGFloat webViewHeight= [[webViewstringByEvaluatingJavaScriptFromString:@document.body.scrollHeight]floatValue];
	CGRectnewFrame = webView.frame;
	newFrame.size.height= webViewHeight;
	webView.frame= newFrame;
}
//方法3.先将UIWebView的高度设为最小,然后再使用sizeThatFits就会返回刚好合适的大小
-(void)webViewDidFinishLoad:(UIWebView*)webVie{
	CGSize actualSize = [webView sizeThatFits:CGSizeZero];
	CGRect newFrame = webView.frame;
	newFrame.size.height = actualSize.height;
	webView.frame = newFrame;
}
//方法4.遍历webview子视图 获取UIWebDocumentView高度即实际高度
-(void)webViewDidFinishLoad:(UIWebView *)webView{
	CGFloat webViewHeight = 0.0f;
	if([webView.subviews count] > 0)
	{
		UIView *scrollerView = webView.subviews[0];
		if([scrollerView.subviews count] >0)
		{
			UIView *webDocView = scrollerView.subviews.lastObject;
			if ([webDocView isKindOfClass:[NSClassFromString(@UIWebDocumentView)class]])
			{
				webViewHeight = webDocView.frame.size.height;
				webView.frame=webDocView.frame;
			}
		}
	}
}