Ios refreshView 上拉刷新

这篇博客介绍了如何在iOS应用中实现上拉刷新功能,重点提到了需要导入的第三方库,如PSCollectionView、PullPsCollectionView和EGORefreshTableHeaderView。通过导入这些头文件并在视图加载时进行初始化,开发者可以为UITableView添加上拉刷新的代理方法。

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

导入头文件:

这些导入的文件是第三方的 可以去网上载一个EGO。

//#import "PSCollectionView.h"

//#import "PullPsCollectionView.h"

//#import "EGORefreshTableHeaderView.h"

添加代理<EGORefreshTableHeaderDelegate>

{


    EGORefreshTableHeaderView *_refreshTableView;
    BOOL _reloading;

}


在viewDidLoad中 初始化

    if (_refreshTableView == nil) {
        //初始化下拉刷新控件
       EGORefreshTableHeaderView *refreshView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.CollectionView.bounds.size.height, self.view.frame.size.width, self.CollectionView.bounds.size.height)];
       refreshView.delegate = self;
       //将下拉刷新控件作为子控件添加到UITableView中
       [self.CollectionView addSubview:refreshView];
       _refreshTableView = refreshView;
       [refreshView release];
    }

//--------上拉刷新开始重新加载时调用的方法
- (void)reloadTableViewDataSource{
    _reloading = YES;
    //开始刷新后执行后台线程,在此之前可以开启HUD或其他对UI进行阻塞
    [NSThread detachNewThreadSelector:@selector(doInBackground) toTarget:self withObject:nil];
}

//完成加载时调用的方法
- (void)doneLoadingTableViewData{
    NSLog(@"doneLoadingTableViewData");
    
    _reloading = NO;
    [_refreshTableView egoRefreshScrollViewDataSourceDidFinishedLoading:self.CollectionView];
    //刷新表格内容
    [self.CollectionView reloadData];
}
#pragma mark Background operation
//这个方法运行于子线程中,完成获取刷新数据的操作
-(void)doInBackground
{
    if ( self.videos.count>0) {
        [self.videos removeAllObjects];
    }
    NSLog(@"doInBackground");
//   self XMLData:(UIButton *)
    [_CollectionView reloadData];
    [NSThread sleepForTimeInterval:3];
    
    //后台操作线程执行完后,到主线程更新UI
    [self performSelectorOnMainThread:@selector(doneLoadingTableViewData) withObject:nil waitUntilDone:YES];
}


#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods
//下拉被触发调用的委托方法
-(void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView *)view
{
    [self reloadTableViewDataSource];
}

//返回当前是刷新还是无刷新状态
-(BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView *)view
{
    return _reloading;
}

//返回刷新时间的回调方法
-(NSDate *)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView *)view
{
    return [NSDate date];
}

#pragma -mark UIScrollViewDelegate Methods
//滚动控件的委托方法
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    [_refreshTableView egoRefreshScrollViewDidScroll:scrollView];
}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    [_refreshTableView egoRefreshScrollViewDidEndDragging:scrollView];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值