UI结构如下,整个页面是一个tableView,UIWebView作为tableView的tableHeaderView。
要实现的效果也很简单:就是让UIWebView高度和它的内容同高,实现webview和tableView一起滑动。
思路就是待webview内容加载完成,去获得它内部scrollView的contentSize的height,然后修改webView的高。
代码如下:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
webView.frame = CGRectMake(0, 0, SCREEN_WIDTH, webView.scrollView.contentSize.height);
[self.tableView setTableHeaderView:webView];
}
一开始想的是,反正webView的高度一开始也是不准确,索性给它个高度0,就是给的这个高度0,结果出事了..
在webViewDidFinishLoad:代理方法里,获得到的contentSize的height是0,然后就开始想哪里出了问题,然后各种百度Google 也都试过了,都没有指出这个问题。最后想着让webView一开始可见,把高度改为100,然后contentSize的height能够获取到了!
结论:经验很重要!!