关于这个内容,网上找到一篇相关内容,介绍的比较详细,转载网址:UITableView下拉刷新页面的实现 http://wangjun.easymorse.com/?p=1193 。该文章中还有EGORefreshTableHeaderView的链接,该开源框架是:https://github.com/enormego/EGOTableViewPullRefresh

 

便于自己以后多次学习查看,特把具体内容转载过来:

下图是实现的效果图,当用户下拉列表的时候,就出现向上的箭头.

image image

实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh

实现过程很简单,下载相应的demo,然后拷贝资源文件和EGORefreshTableHeaderView.h和EGORefreshTableHeaderView.m到相依的工程中.在table所在的类中添加如下代码:

#import <UIKit/UIKit.h>    

#import "EGORefreshTableHeaderView.h"     

@interface iphone_navtaViewController : UIViewController       <UITableViewDelegate,UITableViewDataSource,EGORefreshTableHeaderDelegate>

{        

BOOL isflage;         

IBOutlet UITableView *myTableView;        

EGORefreshTableHeaderView *_refreshHeaderView;          

BOOL _reloading;       

}     

@property (nonatomic,retain) UITableView *myTableView;     

- (void)reloadTableViewDataSource;      

- (void)doneLoadingTableViewData;       

@end

实现方法:

#import "iphone_navtaViewController.h"    

@implementation iphone_navtaViewController     

@synthesize myTableView;     

- (void)viewDidLoad

{         

[super viewDidLoad];         

if (_refreshHeaderView == nil) {              

EGORefreshTableHeaderView *view1 = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 10.0f – self.myTableView.bounds.size.height, self.myTableView.frame.size.width, self.view.bounds.size.height)];               

view1.delegate = self;               

[self.myTableView addSubview:view1];               

_refreshHeaderView = view1;               

[view1 release];           

}           

[_refreshHeaderView refreshLastUpdatedDate];       

}     

- (void)didReceiveMemoryWarning {         

[super didReceiveMemoryWarning];     

}     

- (void)viewDidUnload {         

self.myTableView=nil;         

_refreshHeaderView=nil;     

}     

- (void)dealloc

{         

[_refreshHeaderView release];         

[self.myTableView release];         

[super dealloc];     

}     

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

- (void)reloadTableViewDataSource{          

NSLog(@"==开始加载数据");           

_reloading = YES;       

}

- (void)doneLoadingTableViewData{          

NSLog(@"===加载完数据");           

_reloading = NO;           

[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.myTableView];       

}       

#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;       

}       

- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{           

return [NSDate date];    

}       

@end

一个最重要的步骤,就是要添加QuartzCore.framework组建。

然后运行即可。

posted on 2012-05-07 14:57  asnow  阅读(666)  评论(0编辑  收藏  举报