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属性会失效,不能用第三种方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值