首先 从网上下载
#import "EGORefreshTableHeaderVie w.h" 这个里面的东西
{
//接下来开始声明一些必要的变量和方法并且遵守其协议
EGORefreshTableHeaderVie w *_refreshHeaderView;
// Reloading var should really be your tableviews datasource
// Putting it here for demo purposes
BOOL _reloading;
}
- (void)reloadTableViewDataSourc e;
- (void)doneLoadingTableViewData ;
@end
(void)viewDidLoad {
[super viewDidLoad];
if (_refreshHeaderView == nil) {
EGORefreshTableHeaderVie w *view = [[EGORefreshTableHeaderVie w alloc] 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.tableView addSubview:view];
_refreshHeaderView = view;
[view release];
}
// update the last update date
[_refreshHeaderView refreshLastUpdatedDate];
}
(void)reloadTableViewDataSourc e{
// should be calling your tableviews data source model to reload
// put here just for demo
_reloading = YES;
}
- (void)doneLoadingTableViewData {
// model should call this when its done loading
_reloading = NO;
[_refreshHeaderView egoRefreshScrollViewData SourceDidFinishedLoading :self.tableView];
}
//这些就是datasource的一些方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
[_refreshHeaderView egoRefreshScrollViewDidS croll:scrollView];
}
- (void)scrollViewDidEndDragging :(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
[_refreshHeaderView egoRefreshScrollViewDidE ndDragging:scrollView];
}
(void)egoRefreshTableHeaderDid TriggerRefresh:(EGORefreshTableHeaderVie w*)view{
[self reloadTableViewDataSourc e];
[self performSelector:@selector(doneLoadingTableViewData ) withObject:nil afterDelay:3.0];
}
- (BOOL)egoRefreshTableHeaderDat aSourceIsLoading:(EGORefreshTableHeaderVie w*)view{
return _reloading; // should return if data source model is reloading
}
- (NSDate*)egoRefreshTableHeaderDat aSourceLastUpdated:(EGORefreshTableHeaderVie w*)view{
return [NSDate date]; // should return date data source was last changed
}
包含到自己的tableView之中
例如
#import "EGORefreshTableHeaderVie w.h"
@interface RootViewController : UITableViewController <</span>EGORefreshTableHeaderDel egate>
EGORefreshTableHeaderVie
//
- (void)reloadTableViewDataSourc
接下来 就是在 M文件中的 方法实现
if (_refreshHeaderView == nil) {
EGORefreshTableHeaderVie
}
//
//viewDidLOAD初始化一下
//
}
- (void)doneLoadingTableViewData
//
}
//这些就是datasource的一些方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
[_refreshHeaderView egoRefreshScrollViewDidS
}
- (void)scrollViewDidEndDragging
[_refreshHeaderView egoRefreshScrollViewDidE
}
//这些就是scrollview的一些协议方法的实现
[self reloadTableViewDataSourc
}
- (BOOL)egoRefreshTableHeaderDat
return _reloading; // should return if data source model is reloading
}
- (NSDate*)egoRefreshTableHeaderDat
return [NSDate date]; // should return date data source was last changed
}
//这些就是自己的代理方法
以上是实现下拉菜单的一些实现. 有些数据方面的更新 需要到对应的方法里去实现. 这些方法名字都很清晰 就不做过多解释了