Ios refreshView 上拉刷新

来源:互联网 发布:知学学院百度百科 编辑:程序博客网 时间:2024/06/02 04:14

导入头文件:

这些导入的文件是第三方的 可以去网上载一个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];}


原创粉丝点击