首先创建webView,设置属性:
_webView=[[UIWebView alloc]init];
_webView.frame=CGRectMake(10, originY, Width-20, 140);
_webView.scalesPageToFit = NO;//自动对页面进行缩放以适应屏幕
_webView.delegate=self;
_webView.autoresizesSubviews = NO; //自动调整大小
_webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
_webView.scrollView.scrollEnabled=NO;
<p class="p1"><span class="s1"> [</span>_scrollView<span class="s1"> </span><span class="s2">addSubview</span><span class="s1">:</span>_webView<span class="s1">];</span></p>
然后呢,自适应高度:
#pragma mark - UIWebView delegate
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//html高度
//1
// CGFloat webViewHeight = 0.0f;
// if (webView.subviews.count > 0)
// {
// UIView *scrollerView = [webView.subviews objectAtIndex: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 的高度
// }
// }
// }
//2
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
CGRect newFrame = webView.frame;
newFrame.size.height = actualSize.height;
_webView.frame = newFrame;
//3
// CGFloat webViewHeight=[webView.scrollView contentSize].height;
// CGRect newFrame = webView.frame;
// newFrame.size.height = webViewHeight;
// webView.frame = newFrame;
//
scrollView.contentSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width, _webView.frame.origin.y+_webView.frame.size.height);
}
由于我是在scrollView上显示webView的,必须在webView的delegate方法里面写自适应方法,而且只能用第二种方法,第一种方法,必须要在html中设好高度,第三种方法:由于webView是scrollView的子类,所以有contentSize的属性,但是在这里是webView加在scrollView上的,所以webView的contentSize属性会失效,不能用第三种方法。