应用第三方库EGORefreshTableHeaderView实现下拉刷新功能

来源:互联网 发布:淘宝店铺免费装修教程 编辑:程序博客网 时间:2024/06/06 04:48

首先 从网上下载  #import"EGORefreshTableHeaderView.h"  这个里面的东西
包含到自己的tableView之中
例如
#import "EGORefreshTableHeaderView.h"
@interface RootViewController : UITableViewController<</span>EGORefreshTableHeaderDelegate>
 {
 //接下来开始声明一些必要的变量和方法并且遵守其协议
EGORefreshTableHeaderView *_refreshHeaderView;
 
//  Reloading var should really be your tableviewsdatasource
 //  Putting it here for demopurposes
 BOOL _reloading;
 }
 
- (void)reloadTableViewDataSource;
 -(void)doneLoadingTableViewData;
 @end

接下来 就是在 M文件中的 方法实现
 (void)viewDidLoad {
 [super viewDidLoad];
 
if (_refreshHeaderView == nil) {
 
EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderViewalloc] initWithFrame:CGRectMake(0.0f, 0.0f -self.tableView.bounds.size.height, self.view.frame.size.width,self.tableView.bounds.size.height)];
 view.delegate = self;
 [self.tableViewaddSubview:view];
 _refreshHeaderView = view;
 [view release];
 
}
 
//  update the last update date
 [_refreshHeaderViewrefreshLastUpdatedDate];
 }
//viewDidLOAD初始化一下

 (void)reloadTableViewDataSource{
 
//  should be calling your tableviews data sourcemodel to reload
 //  put here just fordemo
 _reloading = YES;
 
}
 
- (void)doneLoadingTableViewData{
 
//  model should call this when its doneloading
 _reloading = NO;
 [_refreshHeaderViewegoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView];
 
}
//这些就是datasource的一些方法


- (void)scrollViewDidScroll:(UIScrollView*)scrollView{
 
[_refreshHeaderViewegoRefreshScrollViewDidScroll:scrollView];
 
}
 
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollViewwillDecelerate:(BOOL)decelerate{
 
[_refreshHeaderViewegoRefreshScrollViewDidEndDragging:scrollView];
 
}

//这些就是scrollview的一些协议方法的实现



 (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
 
[self reloadTableViewDataSource];
 [selfperformSelector:@selector(doneLoadingTableViewData) withObject:nilafterDelay:3.0];
 
}
 
-(BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{
 
return _reloading; // should return if data source model isreloading
 
}
 
-(NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{
 
return [NSDate date]; // should return date data source was lastchanged
 
}
//这些就是自己的代理方法

以上是实现下拉菜单的一些实现. 有些数据方面的更新 需要到对应的方法里去实现. 这些方法名字都很清晰  就不做过多解释了 
原创粉丝点击