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

      

      

      

  • 相关阅读:
    mac上的终端bash命令(二)基础
    Android 开发笔记___drawable
    Android 开发笔记___图像按钮__imageButton
    Android 开发笔记___滚动视图__scroll view
    Android 开发笔记___textvieww__跑马灯效果
    Android 开发笔记___textview_聊天室效果
    Android 开发笔记___图像视图__简单截屏
    Android 开发笔记___图像视图
    javaScript学习笔记(一)js基础
    iview2+ 表单密码验证
  • 原文地址:https://www.cnblogs.com/zj901203/p/6274362.html
Copyright © 2011-2022 走看看