添加点击显示更多内容的功能,简单改变cell的高度即可
添加上拉加载更多功能
定义两个变量
int selectedRow=-1;
int selected=0;
在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
里添加
if (selected==1) {
if (indexPath.row==selectedRow) {
cell.des.hidden=NO;
}else
cell.des.hidden=YES;
}else
cell.des.hidden=YES;
然后添加点击效果
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
selectedRow=indexPath.row;
selected=!selected;
[self.tableView reloadData];
NSLog(@"%d",selectedRow);
}
然后修改cell高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (selected==1) {
if (indexPath.row==selectedRow) {
return 250;
}else
return 60;
}else
return 60;
}
上拉加载更多是修改原上拉刷新的代码
加上类的文件后在两个方法里改即可
在ViewController.h文件里添加如下几个方法
// create/remove footer/header view, reset the position of the footer/header views
-(void)setFooterView;
-(void)removeFooterView;
-(void)createHeaderView;
-(void)removeHeaderView;
// overide methods
-(void)beginToReloadData:(EGORefreshPos)aRefreshPos;
-(void)finishReloadingData;
// force to refresh
-(void)showRefreshHeader:(BOOL)animated;
在ViewController.m里添加代码
#pragma mark-
#pragma mark overide methods
-(void)beginToReloadData:(EGORefreshPos)aRefreshPos{
if (aRefreshPos == EGORefreshHeader) {
// pull down to refresh data
[self performSelector:@selector(testRealRefreshDataSource) withObject:nil afterDelay:2.0];
}else if(aRefreshPos == EGORefreshFooter){
// pull up to load more data
[self performSelector:@selector(testRealLoadMoreData) withObject:nil afterDelay:2.0];
}
}
刷新的方法
-(void)testRealRefreshDataSource{
NSLog(@"reflash");
xmlParser = [[NSXMLParser alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://rss.sina.com.cn/news/marquee/ddt.xml"]];
self.tempString = nil;
self.newsPubdate = nil;
self.newsTitle = nil;
self.description = nil;
[xmlParser setDelegate:self];
[xmlParser parse];
// after refreshing data, call finishReloadingData to reset the header/footer view
_loadMoreCount=0;
[self setFooterView];
[self.tableView reloadData];
[self finishReloadingData];
}
加载更多的方法
-(void)testRealLoadMoreData{
if (_loadMoreCount==1) {
[self finishReloadingData];
[self removeFooterView];
NSLog(@"ed");
}else{
self.newsTitle = nil;
xmlParser = [[NSXMLParser alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://rss.sina.com.cn/news/marquee/ddt.xml"]];
self.tempString = nil;
[xmlParser setDelegate:self];
[xmlParser parse];
_loadMoreCount=1;
[self.tableView reloadData];
[self finishReloadingData];
NSLog(@"loadmore");
}
}
定义一个整数NSInteger _loadMoreCount;可以限制加载更多次数。
参考:http://blog.youkuaiyun.com/linzhu0831/article/details/7547337
参考demo:http://download.youkuaiyun.com/download/linzhu0831/4743338
本贴demo:http://download.youkuaiyun.com/detail/gwh111/5001479