ios怎么 wkwebview自适应宽高

2025-03-13 01:19:17
推荐回答(1个)
回答1:

方法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高度即实际高度
Objective-C

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

}

}

}

}