在tableview的headerView中添加webView,webView自适应高度
Posted 蓝色的风1203
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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"]; }
以上是关于在tableview的headerView中添加webView,webView自适应高度的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发小技巧--TableView中headerView的循环利用,以及自定义的headerView
当我滚动 tableview 时,如何让 headerView 滚动(不停留在 tableview 的顶部)伴随 UItableViewCell
iOS tableView中section的headerView的位置