不要急,不要怕

webView和tableView的混排

类似于近日头条的上边是webView,下边是推荐的tableView效果.
先看一下效果图
首先说一下tableView和WebView的嵌套方法,试了好多种,感觉这个比较好 原文链接:

点击cell刷新cell:

点击cell后要查看新的内容,首先在tableView didSelectRowAtIndexPath里对请求网址的变量重新赋值,id啦,url之类的,然后移除视图中所有的View

for(UIView *view in [self.view subviews]){
       [view removeFromSuperview];
   }

记得移除观察者,因为要观察的对象已经没了。

然后把搭建页面请求数据的方法重写一遍

 [self createUI];
//[self createReturnBut];
[self loadDataisFresh:NO];//请求数据
//注册
[self registerNibTableViewCell];
//加载数据
[self requestByUrl:self.loadUrl];

这里要记得在注册一次观察者,我把他放到了createUI这个方法里

[self.webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil];

刷新tableView

[self.tb reloadData];

对了,在定义一个全局变量,记录webView的高度,用于点击跳到头部

@property (nonatomic,assign)CGFloat webViewHeight;

在- (void)observeValueForKeyPath:方法中给他赋值

 CGRect frame = self.webView.frame;
 frame.size.height = self.webView.scrollView.contentSize.height;
 //这里获取webView的高度
_webViewHeight = frame.size.height;

最后回到tableView didSelectRowAtIndexPath:点击方法中,跳到顶部,tableView的高度减去webView的高度

[self.tb setContentOffset:CGPointMake(0, -_webViewHeight) animated:YES];

让tableView滚回到最顶端。