iOS下拉刷新的详细介绍
来源:互联网 发布:齐柏林飞船知乎 编辑:程序博客网 时间:2024/06/05 17:43
此代码来自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
#import "EGORefreshTableHeaderView.h"@interface RootViewController : UITableViewController {EGORefreshTableHeaderView *_refreshHeaderView;// Reloading var should really be your tableviews datasource// Putting it here for demo purposesBOOL _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;
- [view release];
- }
- // update the last update date
- [_refreshHeaderView refreshLastUpdatedDate];
- }
- (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;[view release];}// 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
- }
#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}
四、最后呢,别忘了内存管理习惯:
- - (void)viewDidUnload {
- _refreshHeaderView=nil;
- }
- - (void)dealloc {
- _refreshHeaderView = nil;
- [super dealloc];
- }
- (void)viewDidUnload {_refreshHeaderView=nil;}- (void)dealloc {_refreshHeaderView = nil;[super dealloc];}五、编译你的工程,打开 simulator ,看看效果吧。包你满意。
效果图:
原文地址:http://blog.csdn.net/jinglijun/article/details/8150638
- iOS下拉刷新的详细介绍
- 3分钟搞定iOS下拉刷新的详细介绍
- ios-下拉刷新UIRefreshControl介绍
- iOS下拉刷新的实现
- iOS下拉刷新的实现
- iOS UITableView的下拉刷新
- ios:UITableView下拉刷新的使用
- IOS 集成系统的下拉刷新
- iOS tableView 自带的下拉刷新
- iOS UITableView(十一) tableView的下拉刷新
- IOS MJRefresh下拉刷新的使用
- Xamarin.iOS 下拉刷新样式的修改
- iOS聊天下拉刷新聊天记录的实现
- IOS UITableView下拉刷新
- ios 下拉刷新
- ios 下拉刷新
- ios下拉刷新
- IOS 下拉刷新--downPullRefreshView
- 升级cs项目:从vs2003项目vs2005,错误提示“项目所需的应用程序未安装,确保已安装项目类型(.csproj)的应用程序”...
- 单例(singleton)模式
- 下拉刷新以及上拉加载更多
- 易飞bom循环或超过20阶
- Android常用语句
- iOS下拉刷新的详细介绍
- SQL server 2008调试功能设置
- 内存中的堆栈
- 网络编程—02
- 卡方检验基础
- 卡方检验用于特征选择
- hdu 1707 (简单数学)
- Surf
- 自己动手写搜索引擎(常搜吧项目展示)(Java、Lucene、hadoop)