码迷,mamicode.com
首页 > Web开发 > 详细

在tableview的headerView中添加webView,webView自适应高度

时间:2017-01-12 08:05:03      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:bsp   mst   nts   options   修改   ica   .sh   size   document   

最近在项目中需要添加一个webView加载的页面,下面显示的是对这个webView所显示的内容的一个评论列表 ,列表要根据后台加载过来的HTML自适应的变化高度,tableview的cell在webView的下面显示,显示的效果

技术分享

 

1.设置webView ,初始的高度设置为0.5 ,设置为tableHeaderView为webView,添加了一个观察者,监控webView 的contentSize的变化

    _myWebView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 0.5)];
    _myWebView.delegate = self;
    _myWebView.scrollView.scrollEnabled = NO;
    _myWebView.scrollView.showsHorizontalScrollIndicator = NO;
    [_myWebView sizeToFit];
    _myWebView.scrollView.bounces = NO;
    [self.myWebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
    _myTableView.tableHeaderView = _myWebView;

2.在observer中的方法,通过获取到整个webView的内容,修改他的frame

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if ([keyPath isEqualToString:@"contentSize"]) {
        webViewH = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue]+15;
        CGRect newFrame = self.myWebView.frame;
        newFrame.size.height = webViewH;
        NSLog(@"现在的高度===%f",webViewH);
        self.myWebView.frame = newFrame;
        self.myTableView.tableHeaderView = self.myWebView;
    }
}

3.最后也别忘记释放观察者

-(void)dealloc{
    [self.myWebView.scrollView removeObserver:self forKeyPath:@"contentSize"];
}

  

  

  

 

在tableview的headerView中添加webView,webView自适应高度

标签:bsp   mst   nts   options   修改   ica   .sh   size   document   

原文地址:http://www.cnblogs.com/zj901203/p/6274362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!