xml解析新浪新闻_客户端_下拉刷新2

来源:互联网 发布:厦门美工培训班 编辑:程序博客网 时间:2024/06/10 14:37

添加点击显示更多内容的功能,简单改变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;}elsecell.des.hidden=YES;}elsecell.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;}elsereturn 60;}elsereturn 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.csdn.net/linzhu0831/article/details/7547337

参考demo:http://download.csdn.net/download/linzhu0831/4743338

本贴demo:http://download.csdn.net/detail/gwh111/5001479


原创粉丝点击