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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

时间: 2024-10-19 21:38:13

TableView上的HeaderView放WebView的相关文章

iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题

[原]iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题 2014-10-31阅读202 评论0 转载请注明出处. 今天在调试代码的时候,在tableviewcell上添加button,发现button快速点击的话,是看不出点击效果的,查找资料发现, ios7上UITableViewCell子层容器是UITableViewCellScrollView, ios6的则是UITableViewCellContentView.点击效果应该是被ScrollView的触摸延

IOS xib在tableview上的简单应用(通过xib自定义cell)

UITableView是一种常用的UI控件,在实际开发中,由于原生api的局限,自定义UITableViewCell十分重要,自定义cell可以通过代码,也可以通过xib. 这篇随笔介绍的是通过xib自定义cell. 首先通过gif介绍如何创建xib. 然后实现代码部分,要注意的是实现代码的同时要使代码与xib相关联.-如图 下面便是代码,一些解释我在代码中注释了. ViewController.m // // ViewController.m // CX-Xib在tableView中的简单应用

NSXMLParser读取XML文件并将数据显示到TableView上

关于XML,有两种解析方式,分别是SAX(Simple API for XML,基于事件驱动的解析方式,逐行解析数据,采用协议回调机制)和DOM(Document Object Model ,文档对象模型.解析时需要将XML文件整体读入,并且将XML结构化成树状,使用时再通过树状结构读取相关数据,查找特定节点,然后对节点进行读或写).苹果官方原生的NSXMLParse类库采用第一种方式,即SAX方式解析XML,它基于事件通知的模式,一边读取文档一边解析数据,不用等待文档全部读入以后再解析,所以如

TableView上的下拉刷新及抓获本地时间。

#import <UIKit/UIKit.h> @interface ViewController : UITableViewController{        NSMutableArray *timeArray;        UIRefreshControl *refresh;    } @property (strong,nonatomic)NSMutableArray *timeArray;@property (strong,nonatomic)UIRefreshControl *r

去除tableview上的空白间隔

今天工作中,需要在一个小的视图中创建一个小的tableview,我先创建好加载的视图,然后相对于这个视图创建tableview,坐标设置为(0,0,view.frame.width,view.frame.height),然后运行一看发现在view上边界和tableview有一段的间隔,原来以为是因为在导航栏的页面的原因,后来发现设置self.automaticallyAdjustsScrollViewInsets = NO;不管用!!!! 后来找了找发现这样就可以了,原来是头视图的原因: tab

防止TableView 上的tap手势隔断 cell的选择

遵循UIGestureRecognizerDelegate协议: 1.0添加手势 - (void)addTapGest {    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];    tap.delegate = self;    [self.tableView addGestureRecognizer:tap];} 2.拦截部分ta

TableView上拉、下拉原理

TableView的上拉,下拉特效已经满大街都是了,也有很多第三方的代码. 这两天研究了一下其原理,分享一下思路.这里以tableView的上拉为例,由于上拉操作的样式也很多,这里只介绍一种:在上拉tableView的时候,在tableView的bottom下面,添加一个view,该view可以自定义.我称这个view为pullView,pullView是动态的,如下图(该图仅展示了loading状态,另外在loading的位置,还有"上拉显示更多"."松手显示更多"

关于TableView上有一段留白的解决方法

当cell的类型是plaint类型时,直接设置self.automaticallyAdjustsScrollViewInsets=NO;应该就可以的 当cell的类型是group类型时,此时要去掉tableView顶部的空白需要两步: 1.设置tableView的tableHeaderView高度为0.5: self.MenuTable.tableHeaderView=[[UIview alloc] initWithFrame:(CGRectMake(0,20,82,0.5))]; 2.设置he

php文件以二进制形式上传并放入到数据库中

conn.php: <?php $id=mysql_connect('localhost','root','root'); mysql_select_db("db_database12",$id); mysql_query("set names gb2312"); ?> index.php: <html> <head> <meta http-equiv="Content-Type" content=&qu