tableview 下面添加自适应高度的网页,有两个选择:1、tableFooterView 设置为webView
2、tableVIewcell中添加webView。
这里觉得tableFooterVIew 更合适,思路如下:
- 加载tableview 数据的时候,初始化webView:
-(void)creatWebView{
self.webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 0.1)];
//禁止webview滚动
UIScrollView *tempView = (UIScrollView *)[self.webView.subviews objectAtIndex:0];
tempView.scrollEnabled = NO;
self.webView.scalesPageToFit = NO; //禁止用户缩放页面
[self LoadwebDataWithUrl:self.webURL whichView:self.webView];
}
- 加载webView 的页面数据:
-(void)LoadwebDataWithUrl:(NSString *)webURL whichView:(UIWebView *)webView{
if (![webURL isEqual:[NSNull null]]&& webURL!=nil&&webURL.length>0) {
NSURL *url=[[NSURL alloc] initWithString:webURL];
webView.delegate = self;
[webView loadRequest:[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5.f]];
}
}
- 在webView 的代理方法中,设定tableFooterView 为webVIew
-(void)webViewDidFinishLoad:(UIWebView *)webView{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{//延迟0.3秒执行代码
[webView sizeToFit];
//获取到webview的高度
CGFloat webViewHeight1 = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
self.webView.frame = CGRectMake(0, 0, SCREEN_WIDTH, webViewHeight1);
self.tableView.tableFooterView = self.webView;
});
}
网友评论