iOS在UITableViewCell上加载UIWebView
2018-08-31 本文已影响7人
莽原奔马668
UITableView本身是可以滑动的,UIWebView也是可以滑动的,不可能关闭掉tableView的滑动效果,必然要关闭掉webView的滑动效果,即:
webView.scrollView.scrollEnabled = NO;
这样以来,webView加载的内容高度就至关重要了,只有知道了webView加载的内容高度,就可以动态的修改cell的高度。在webView完成加载的协议方法里,获取内容高度,修改webView的frame,并刷新tableView。
#pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//加载完毕,计算webView的高度,刷新tableView
height = [[webView stringByEvaluatingJavaScriptFromString:
@"document.body.scrollHeight"] floatValue];
self.webView.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, height);
[_tableView reloadData];
}
cell里添加webView
- 适合用于一次性加载完毕的,不适用于那种可以上拉加载的,譬如https://wap.baidu.com这种可以无限加载的,因为已经关闭掉webView的滑动效果了,无法进行继续加载。
- 适合加载轻量级的,信息量小的,不适合加载信息量过大的,容易出现卡顿不流畅的现象。