应用第三方库EGORefreshTableHeaderView实现时拉刷新功能
应用第三方库EGORefreshTableHeaderView实现下拉刷新功能首先 从网上下载#importEGORefreshTableHeaderVi
应用第三方库EGORefreshTableHeaderView实现下拉刷新功能
首先 从网上下载 #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
}//这些就是自己的代理方法
以上是实现下拉菜单的一些实现. 有些数据方面的更新 需要到对应的方法里去实现. 这些方法名字都很清晰 就不做过多解释了