美文网首页
ios webview自适应实际内容高度4种方法

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

作者: Skylpy | 来源:发表于2017-08-12 09:07 被阅读93次

    //第一种方法

    - (void)webViewDidFinishLoad:(UIWebView*)webView

    {

    CGFloatwebViewHeight=[webView.scrollViewcontentSize].height;

    CGRectnewFrame = 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{

    CGSizeactualSize = [webViewsizeThatFits:CGSizeZero];

    CGRectnewFrame = webView.frame;

    newFrame.size.height= actualSize.height;

    webView.frame= newFrame;

    }

    //方法4.遍历webview子视图 获取UIWebDocumentView高度即实际高度

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

    CGFloatwebViewHeight =0.0f;

    if([webView.subviewscount] >0)

    {

    UIView*scrollerView = webView.subviews[0];

    if([scrollerView.subviewscount] >

    0)

    {

    UIView*webDocView = scrollerView.subviews.lastObject;

    if([webDocViewisKindOfClass:[NSClassFromString(@"UIWebDocumentView")class]])

    {

    webViewHeight = webDocView.frame.size.height;//获取文档的高度

    webView.frame=webDocView.frame;

    //更新UIWebView的高度

    }

    }

    }

    }

    相关文章

      网友评论

          本文标题:ios webview自适应实际内容高度4种方法

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