UIWebView 加載html 及自適應高度

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章