首先創建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屬性會失效,不能用第三種方法。