您的位置:首页 > 移动开发 > IOS开发

IOS开发之很简单的下拉刷新,包你满意

2016-03-24 09:56 459 查看
说实话,刚开始看到这篇博客的时候很不可思议,主要是因为当时我在研究这个的时候废了很长的时间,当时我们使用的是MJ_Refresh,再加上当时刚开始接触这个第三方的东西,所以被搞的晕头转向,

这篇博客来自于此代码来自Enormego 团队,一个来自美国的天才、热心的开发团队

下载地址

在自己工程中的引用步骤:

一、 从上面的链接下载资源文件,将
EGORefreshTableHeaderView.h
EGORefreshTableHeaderView.m
两个文件,以及Enormego提供的那一套图片包拖进你的工程里。

二、找到你的 UITableViewController 的 .h 文件,添加相应的代码:

#import "EGORefreshTableHeaderView.h"

@interface RootViewController : UITableViewController  {

EGORefreshTableHeaderView *_refreshHeaderView;

//  Reloading var should really be your tableviews datasource
//  Putting it here for demo purposes
BOOL _reloading;
}

- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;
@end


三、切换到你的 UITableViewController 的 .m 文件,添加相应的代码:

- (void)viewDidLoad {
[super viewDidLoad];

if (_refreshHeaderView == nil) {

EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView 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;

}

//  update the last update date
[_refreshHeaderView refreshLastUpdatedDate];
}


#pragma mark -
#pragma mark Data Source Loading / Reloading Methods

- (void)reloadTableViewDataSource{

//  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 egoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView];

}

#pragma mark -
#pragma mark UIScrollViewDelegate Methods

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

[_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];

}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

[_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];

}

#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods

- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{

[self reloadTableViewDataSource];
[self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];

}

- (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

}


编译你的工程,打开 simulator ,看看效果吧。包你满意。








效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: