IOS怎么实现一个UITableView的下拉刷新
来源:互联网 发布:thinkpad8 win10优化 编辑:程序博客网 时间:2024/05/16 18:21
采用的EGORefreshTableHeaderView来实现:
在Controller上实现EGORefreshTableHeaderDelegate的delegate
@property(nonatomic)UITableView* tableView;@property(nonatomic)NSMutableArray* data;@property(nonatomic)EGORefreshTableHeaderView* refreshTableVIew;@property(nonatomic,assign)BOOL reloading;先初始化:
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. UIToolbar* bar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(click)]; [bar setItems:[NSArray arrayWithObjects:item, nil]]; [self.view addSubview:bar]; self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 44,320,460-44)]; [self.view addSubview:_tableView]; self.tableView.delegate = self; self.tableView.dataSource = self; _data = [[NSMutableArray alloc] init]; [_data addObject:@"aa"]; [_data addObject:@"cc"]; if (_refreshTableVIew == nil) { EGORefreshTableHeaderView* refreshTableView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0, -self.tableView.bounds.size.height, self.view.frame.size.width, self.tableView.bounds.size.height)]; refreshTableView.delegate = self; [_tableView addSubview:refreshTableView]; _refreshTableVIew = refreshTableView; } }
下拉的时候会执行
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{ _reloading = YES; //开始刷新后执行后台线程,在此之前可以开启HUD或其他对UI进行阻塞 [NSThread detachNewThreadSelector:@selector(doInBackground) toTarget:self withObject:nil];}
-(void)doInBackground{ NSLog(@"do in background"); [_data addObject:@"ff"]; [NSThread sleepForTimeInterval:3]; [self performSelectorOnMainThread:@selector(loadedTableViewData) withObject:nil waitUntilDone:YES];}
-(void)loadedTableViewData{ _reloading = NO; [_refreshTableVIew egoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView]; [self.tableView reloadData];}
这个方法表示正在刷新中
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{ return _reloading;}
这个方法在显示时间在TableView的刷新块上 :
//返回刷新时间的回调方法-(NSDate *)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView *)view{ return [NSDate date];}
然后必须加上下面两个方法:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ [_refreshTableVIew egoRefreshScrollViewDidScroll:scrollView];}-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ [_refreshTableVIew egoRefreshScrollViewDidEndDragging:scrollView];}
代码可以在http://download.csdn.net/detail/baidu_nod/7599913下载
0 0
- IOS怎么实现一个UITableView的下拉刷新
- iOS UITableView的下拉刷新
- UItableview的下拉刷新实现
- iOS开发之UITableView的下拉刷新实现
- IOS UITableView下拉刷新
- ios:UITableView下拉刷新的使用
- iOS UITableView(十一) tableView的下拉刷新
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现 .
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView实现下拉刷新的小功能
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- UITableView下拉刷新页面的实现
- OpenStack Nova-Scheduler And vSphere DRS
- HDU 1671 Trie树【 动态分配内存 + 内存释放 】
- 【LeetCode with Python】 Symmetric Tree
- Mahout算法调用展示平台2.1
- Java 数据流学习之 FileInputStream/FileOutputStream
- IOS怎么实现一个UITableView的下拉刷新
- OpenStack基于Libvirt的虚拟化平台调度实现----Nova虚拟机动态迁移源码分析
- Arrays.asList()
- 素数判定(这题对我来说竟然一次没有搞定)
- Android中使用HTTP服务
- 关于GSON使用HASHMAP来转换成JAVA对象
- 【LeetCode with Python】 Trapping Rain Water
- 马士兵struts2视频教程第十一集
- final 、 abstract类