美文网首页
[iOS 笔记] 获取webView的实际高度

[iOS 笔记] 获取webView的实际高度

作者: 世上无南西 | 来源:发表于2018-11-15 11:01 被阅读0次

方法1:获取webview中scrovllview的contentsize进行设置

-(void)webViewDidFinishLoad:(UIWebView *)webView{

CGFloat webViewHeight=[webView.scrollView contentSize].height;

CGRect newFrame = webView.frame;

newFrame.size.height = webViewHeight;

webView.frame = newFrame;

}

方法2:执行js语句 直接获取html文档的dom高度

-(void)webViewDidFinishLoad:(UIWebView *)webView{

CGFloat webViewHeight= [[webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"]floatValue];

// CGFloat webViewHeight= [[webView stringByEvaluatingJavaScriptFromString: @"document.body.scrollHeight"]floatValue];

CGRect newFrame = webView.frame;

newFrame.size.height = webViewHeight;

webView.frame = newFrame;

}

方法3.先将UIWebView的高度设为最小,然后再使用sizeThatFits就会返回刚好合适的大小

-(void)webViewDidFinishLoad:(UIWebView *)webView{

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; //更新UIWebView 的高度

 }

 }

 }

}

原文:https://www.cnblogs.com/jgCho/p/5557112.html

相关文章

网友评论

      本文标题:[iOS 笔记] 获取webView的实际高度

      本文链接:https://www.haomeiwen.com/subject/fsnefqtx.html