廢話不多說,直接上傳代碼說明
1.把EGORefreshTableHeaderView.h和EGORefreshTableHeaderView.m檔案拉入到工程
2.viewcontroller檔案添加引用#import "EGORefreshTableHeaderView.h"和協定<</span>EGORefreshTableHeaderDelegate>
3.定義對象
EGORefreshTableHeaderView *refreshView;
BOOL reloading;
//注意reloading是必須的
4 實作delegate
#pragma mark - EGORefreshTableHeaderDelegate Methods
//下拉控件重新整理觸發事件
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
[self reloadTableViewDataSource];
}
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{
return reloading; // should return if data source model is reloading
- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{
return [NSDate date]; // should return date data source was last changed
#pragma mark - UIScrollViewDelegate Methods
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
[refreshView egoRefreshScrollViewDidScroll:scrollView];
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
[refreshView egoRefreshScrollViewDidEndDragging:scrollView];
注意要實作UIScrollViewDelegate
5 添加load資料的函數和load完資料的函數
#pragma mark Data Source Loading / Reloading Methods
//下拉動作觸發事件調用的函數。在這裡發送資料請求
- (void)reloadTableViewDataSource{
// should be calling your tableviews data source model to reload
// put here just for demo
NSLog(@"dragging!!!");
timer = [NSTimer scheduledTimerWithTimeInterval:5 target:selfselector:@selector(doneLoadingTableViewData) userInfo:nil repeats:NO];
reloading = YES;
//請求結束函數。在這裡要關閉下拉的視圖.并更新表視圖
- (void)doneLoadingTableViewData{
// model should call this when its done loading
NSLog(@"stop loading");
timer = nil;
reloading = NO;
[refreshView egoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView];
[listData addObject:[[NSString alloc] initWithFormat:@"%d",[listData count]]];
[self.tableView reloadData];
本文轉自 卓行天下 51CTO部落格,原文連結:http://blog.51cto.com/9951038/1772576,如需轉載請自行聯系原作者