zoukankan      html  css  js  c++  java
  • 在tableview的headerView中添加webView,webView自适应高度

    最近在项目中需要添加一个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"];
    }
    

      

      

      

  • 相关阅读:
    【网络流24题】方格取数问题(最大流)
    运维之思科篇——NAT基础配置
    NAT地址转换常用命令详解
    NAT(地址转换技术)详解
    Linux命令之grep用法详解:grep与正则表达式 [转]
    curl查询公网出口IP
    CentOS下安装Telnet服务
    Linux之Xinetd服务介绍
    上市公司年报发布时间是什么时候?
    jackson序列化字段字母大小写及字段名重复
  • 原文地址:https://www.cnblogs.com/zj901203/p/6274362.html
Copyright © 2011-2022 走看看