########
@property (nonatomic,strong)UITableView *tableView;
@property (nonatomic,strong)UIWebView *webView;
- (UITableView *)tableView{
if (!_tableView) {
_tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight) style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
#注意,这两行代码是TableView的自适应高度
_tableView.estimatedRowHeight = 100;
_tableView.rowHeight = UITableViewAutomaticDimension;
}
return _tableView;
}
-(UIWebView *)webView{
if (!_webView) {
#注意,webView这里高度不能为0
_webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, kWidth, 100)];
_webView.scrollView.bounces = NO;
_webView.scrollView.bouncesZoom = NO;
_webView.delegate = self;
}
return _webView;
}
#注意webView走这个协议方法
- (void)webViewDidStartLoad:(UIWebView *)webView{
}
//正则表达式,自适应webView适应屏幕,图片文字自适应屏幕
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *js = @"function imgAutoFit() { \
var imgs = document.getElementsByTagName('img'); \
for (var i = 0; i < imgs.length; ++i) {\
var img = imgs[i]; \
img.style.maxWidth = %f; \
} \
}";
js = [NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - 20];
[webView stringByEvaluatingJavaScriptFromString:js];
[webView stringByEvaluatingJavaScriptFromString:@"imgAutoFit()"];
//获取到webview的高度
CGFloat height = [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
self.webView.frame = CGRectMake(self.webView.frame.origin.x,self.webView.frame.origin.y, self.view.frame.size.width, height);
#注意,在这里再添加到TableView上,否则无效
self.tableView.tableHeaderView = self.webView;
[self.tableView reloadData];
}