美文网首页
[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