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

本文介绍了如何在 iOS 开发中使用 UITableView 实现点击显示更多内容的功能,并通过调整 cell 的高度来展示详细信息。此外,还提供了实现上拉加载更多功能的具体步骤及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加点击显示更多内容的功能,简单改变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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值