UITableView下拉刷新页面的实现(有框架)
来源:互联网 发布:演出音频软件 编辑:程序博客网 时间:2024/06/07 14:55
以前看到facebook,人人和其他的一些应用,很多都使用了下拉列表,列表就重新加载数据的应用.感觉用户体验很好,但是一直没有时间找相应的解决方法,今天终于有时间整理一下代码:
下图是实现的效果图,当用户下拉列表的时候,就出现向上的箭头.
实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh
实现过程很简单,下载相应的demo,然后拷贝资源文件和EGORefreshTableHeaderVie
viewplaincopyto clipboardprint?
- #import
<UIKit/UIKit.h> - #import
"EGORefreshTableHeaderVie w.h" - @interface
iphone_navtaViewController : UIViewController - <UITableViewDelegate,UITableViewDataSource,EGORefreshTableHeaderDel
egate>{ -
BOOL isflage; -
IBOutlet UITableView *myTableView; -
EGORefreshTableHeaderVie w *_refreshHeaderView; -
BOOL _reloading; - }
- @property
(nonatomic,retain) UITableView *myTableView; - -
(void)reloadTableViewDataSourc e; - -
(void)doneLoadingTableViewData ; - @end
实现方法:
viewplaincopyto clipboardprint?
- #import
"iphone_navtaViewController.h" - @implementation
iphone_navtaViewController - @synthesize
myTableView; - -
(void)viewDidLoad { -
[super viewDidLoad]; -
if (_refreshHeaderView == nil) { -
EGORefreshTableHeaderVie w *view1 = [[EGORefreshTableHeaderVie w 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]; - }
- -
(BOOL)shouldAutorotateToInterf aceOrientation:(UIInterfaceOrientation)interfaceOrientation { -
return (interfaceOrientation == UIInterfaceOrientationPo rtrait); - }
- -
(void)didReceiveMemoryWarning { -
[super didReceiveMemoryWarning]; - }
- -
(void)viewDidUnload { -
self.myTableView=nil; -
_refreshHeaderView=nil; - }
- -
(void)dealloc { -
_refreshHeaderView=nil; -
[self.myTableView release]; -
[super dealloc]; - }
- #pragma
mark – - #pragma
mark onClick - -(void)touchesBegan:(NSSet
*)touches withEvent:(UIEvent *)event - {
-
isflage=!isflage; -
[super.navigationController setNavigationBarHidden:isflage animated:TRUE]; -
[super.navigationController setToolbarHidden:isflage animated:TRUE]; - }
- #pragma
mark – - #pragma
mark UITableView - -
(NSInteger)numberOfSectionsInTableV iew:(UITableView *)tableView { -
return 1; - }
- -
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { -
return 3; - }
- -
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { -
UITableViewCell* cell = [tableView dequeueReusableCellWithI dentifier:@"tag"]; -
if (cell==nil) { -
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubt itle -
reuseIdentifier:@"tag"] autorelease]; -
} -
//表格设计 -
return cell; - }
- -(CGFloat)
tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath - {
-
return 100; - }
- #pragma
mark – - #pragma
mark Data Source Loading / Reloading Methods - -
(void)reloadTableViewDataSourc e{ -
NSLog(@"==开始加载数据"); -
_reloading = YES; - }
- -
(void)doneLoadingTableViewData { -
NSLog(@"===加载完数据"); -
_reloading = NO; -
[_refreshHeaderView egoRefreshScrollViewData SourceDidFinishedLoading :self.myTableView]; - }
- #pragma
mark – - #pragma
mark UIScrollViewDelegate Methods - -
(void)scrollViewDidScroll:(UIScrollView *)scrollView{ -
[_refreshHeaderView egoRefreshScrollViewDidS croll:scrollView]; - }
- -
(void)scrollViewDidEndDragging :(UIScrollView BOOL)decelerate{*)scrollView willDecelerate:( -
[_refreshHeaderView egoRefreshScrollViewDidE ndDragging:scrollView]; - }
- #pragma
mark – - #pragma
mark EGORefreshTableHeaderDel egate Methods - -
(void)egoRefreshTableHeaderDid TriggerRefresh:(EGORefreshTableHeaderVie w*)view{ -
[self reloadTableViewDataSourc e]; -
[self performSelector:@selector(doneLoadingTableViewData ) withObject:nil afterDelay:3.0]; - }
- -
(BOOL)egoRefreshTableHeaderDat aSourceIsLoading:(EGORefreshTableHeaderVie w*)view{ -
return _reloading; - }
- -
(NSDate*)egoRefreshTableHeaderDat aSourceLastUpdated:(EGORefreshTableHeaderVie w*)view{ -
return [NSDate date]; - }
- @end
一个最重要的步骤,就是要添加QuartzCore.framework组建。
然后运行即可- UITableView下拉刷新页面的实现(有框架)
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现 .
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- EGORefreshTableHeaderView —— UITableView下拉刷新页面的实现
- EGORefreshTableHeaderView —— UITableView下拉刷新页面的实现
- EGORefreshTableHeaderView —— UITableView下拉刷新页面的实现
- UItableview的下拉刷新实现
- UITableView实现下拉刷新的小功能
- UIRefreshControl 实现UITableView的下拉刷新
- UITableView下拉刷新的使用
- javascript 实现全部替换(replaceAll)
- 学习boost预编译的代码
- MFC中Timer的使用方法
- UIGestureRecognizer侦测使用者输入操作
- table二级菜单效果,雪花效果
- UITableView下拉刷新页面的实现(有框架)
- ChartDirector 5.0 for python 笔记【2】Simple Pie Chart
- UIImage的灰化处理
- 浅析Java抽象类和接口的比较
- UIImage具有渐变效果
- HTML相对路径表示方法
- 固定网站左边且不随网页滚动的DIV层
- “终端服务器超出了最大允许连接数”的解决方法
- 【C Prime Plus】学习笔记,Chapter 10,数组和指针之一