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"];
    }
    

      

      

      

  • 相关阅读:
    SQL Server的数据库镜像实施笔记(3)
    MVC3缓存之三:MVC3中的局部缓存
    MVC3缓存之二:页面缓存中的局部动态
    SQL Server的数据库镜像实施笔记(2)
    ab工具
    数据库灾难备份,和负载均衡 主从数据库配置
    SQL Server的数据库镜像实施笔记 一
    ArcGIS version not specified. You must call RuntimeManager.
    SL命名空间书写
    通过文件tnsnames.ora连接
  • 原文地址:https://www.cnblogs.com/zj901203/p/6274362.html
Copyright © 2011-2022 走看看