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

方法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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容