TableView上的HeaderView放WebView
Posted Ghosgt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TableView上的HeaderView放WebView相关的知识,希望对你有一定的参考价值。
滑动起来没有一丝卡顿现象亲测
{
UIView*view;
UIImageView*image;
CGFloatwebViewHeight;
}
- (void)viewDidLoad {
[superviewDidLoad];
self.table=[[UITableViewalloc]initWithFrame:CGRectMake(0,CGRectGetMaxY(self.webView.frame),kScreenWidth,kScreenHeight-self.tabBarController.tabBar.frame.size.height)];
self.table.delegate=self;
self.table.dataSource=self;
self.table.separatorStyle=UITableViewCellSelectionStyleNone;
[self.viewaddSubview:self.table];
view= [[UIViewalloc]initWithFrame:CGRectMake(0,0,kScreenWidth,kScreenHeight)];
self.table.tableHeaderView=view;
_webView= [[UIWebViewalloc]initWithFrame:CGRectMake(0,0,kScreenWidth,kScreenHeight)];
[_webViewsetScalesPageToFit:YES];//大小自适应
_webView.scrollView.scrollEnabled=NO;
[self.webViewloadRequest:[[NSURLRequestalloc]initWithURL:[NSURLURLWithString:@"你的URL"]]];
[viewaddSubview:_webView];
_webView.delegate=self;
_webView.scrollView.delegate=self;
[_webView.scrollViewaddObserver:selfforKeyPath:@"contentSize"options:NSKeyValueObservingOptionNewcontext:nil];
}
- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
if([keyPathisEqualToString:@"contentSize"]) {
webViewHeight= [[_webViewstringByEvaluatingjavascriptFromString:@"document.body.scrollHeight"]floatValue];
CGRectnewFrame=_webView.frame;
newFrame.size.height=webViewHeight;
_webView.frame= newFrame;
[_webViewsizeToFit];
CGRectFrame =view.frame;
Frame.size.height= Frame.size.height+_webView.frame.size.height;
view.frame= newFrame;
[self.table setTableHeaderView:view];//这句话才是重点
}
}
- (void)webViewDidFinishLoad:(UIWebView*)webView
{
CGFloatsizeHeight = [[webViewstringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"]floatValue];
self.webView.frame=CGRectMake(0,0,kScreenWidth, sizeHeight);
stro.contentSize=CGSizeMake(kScreenWidth, sizeHeight+1);
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
}
#pragma mark返回每组行数
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
return5;
}
#pragma mark返回每行的单元格
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
staticNSString*CellIdentifier [email protected]"Cell";
UITableViewCell*cell = [UITableViewCell dequeueReusableCellWithIdentifier:CellIdentifier];
if(!cell) {
cell = [[commentsTableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifierIndexPa:indexPath];
}
returncell;
}
#pragma mark返回每行高度
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
return150;
}
作者:ios我称王
链接:http://www.jianshu.com/p/66b367b8b3ff
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以上是关于TableView上的HeaderView放WebView的主要内容,如果未能解决你的问题,请参考以下文章
tableView.headerView(forSection: 0) 的高度为零
当我滚动 tableview 时,如何让 headerView 滚动(不停留在 tableview 的顶部)伴随 UItableViewCell
iOS 解决tableView中headerView头部视图不跟随tableView滑动的方法