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

2017-08-12  本文已影响93人  Skylpy

//第一种方法

- (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的高度

}

}

}

}

上一篇下一篇

猜你喜欢

热点阅读