ios:UITableView下拉刷新的使用
2012-11-02 16:58
483 查看
本文用到的是:RefreshTable.
文件下载请移步:https://github.com/enormego/EGOTableViewPullRefresh
本来想传图的。可不知道怎么回事,无法上传。暂时不上传了
1.请将RefreshTableHeaderView的两个相关文件及图片文件 引入你的工程中
2.引入相关
.h中的操作
2.1 #import "EGORefreshTableHeaderView.h"
2.2 添加
EGORefreshTableHeaderDelegate ,还要记得引入UIScrollViewDelegate
2.3 在.h中添加
EGORefreshTableHeaderView *_refreshHeaderView;
BOOL _reloading;
2.4 添加两个方法
- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;
如下:
[cpp] view
plaincopyprint?
#import <UIKit/UIKit.h>
#import "EGORefreshTableHeaderView.h"
@interface KeHuanWangFirstViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,UIScrollViewDelegate,EGORefreshTableHeaderDelegate>{
EGORefreshTableHeaderView *_refreshHeaderView;
BOOL _reloading;//主要是记录是否在刷新中
}
//这两个是下拉刷新的事件
- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;
3. .m文件中的操作
[cpp] view
plaincopyprint?
//下拉刷新相关代码---------------
//重加载事件
- (void) reloadTableViewDataSource{
_reloading = YES;
//这里引用你加载数据的方法
}
//加载结束事件
- (void)doneLoadingTableViewData{
// model should call this when its done loading
_reloading = NO;
if (得到的数组数是大于0的) {
[self.table reloadData];
}else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"获取数据失败或网络异常" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
[alert show];
[alert release];
}
[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.table];
}#pragma mark -#pragma mark UIScrollViewDelegate Methods
//table也是scrollview所以只要滚动就会调用这个方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"Scrolling...");
[_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
}
//滚动结束就会调用这个方法
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"Scrolling Stoped...");
[_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
}
#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods
//释放更新
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
//
// [self reloadTableViewDataSource];
[NSThread detachNewThreadSelector:@selector(reloadTableViewDataSource) toTarget:self withObject:nil];
// [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 - View lifecycle
//手动调用下拉刷新的代码 --------------
-(void) ViewFrashData
{
[self.tabNews setContentOffset:CGPointMake(0, -75) animated:YES];
[self performSelector:@selector(doneManualRefresh) withObject:nil afterDelay:0.4];
}
-(void)doneManualRefresh
{
[_refreshHeaderView egoRefreshScrollViewDidScroll:self.tabNews];
[_refreshHeaderView egoRefreshScrollViewDidEndDragging:self.tabNews];
}
//下拉刷新相关代码---------------
//手动调用下拉刷新的代码 --------------
//刷新按钮事件
- (void) reloadInfo
{
//手动下拉刷新相关
[self ViewFrashData];
}
- (void)viewDidLoad
{[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//下拉刷新相关
if (
_refreshHeaderView ==nil) {
EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f,0.0f - self.tabNews.bounds.size.height,self.view.frame.size.width,self.tabNews.bounds.size.height)];
//0,-416,320,416
NSLog(@"%f",self.tabNews.bounds.size.height);
view.delegate = self;
[self.tabNewsaddSubview:view];
_refreshHeaderView = view;
[view release];
}
// update the last update date
[_refreshHeaderViewrefreshLastUpdatedDate];
//如果需要进入view或按刷新按钮就出现下拉加载效果。可以直接调用reloadInfo方法
文件下载请移步:https://github.com/enormego/EGOTableViewPullRefresh
本来想传图的。可不知道怎么回事,无法上传。暂时不上传了
1.请将RefreshTableHeaderView的两个相关文件及图片文件 引入你的工程中
2.引入相关
.h中的操作
2.1 #import "EGORefreshTableHeaderView.h"
2.2 添加
EGORefreshTableHeaderDelegate ,还要记得引入UIScrollViewDelegate
2.3 在.h中添加
EGORefreshTableHeaderView *_refreshHeaderView;
BOOL _reloading;
2.4 添加两个方法
- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;
如下:
[cpp] view
plaincopyprint?
#import <UIKit/UIKit.h>
#import "EGORefreshTableHeaderView.h"
@interface KeHuanWangFirstViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,UIScrollViewDelegate,EGORefreshTableHeaderDelegate>{
EGORefreshTableHeaderView *_refreshHeaderView;
BOOL _reloading;//主要是记录是否在刷新中
}
//这两个是下拉刷新的事件
- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;
3. .m文件中的操作
[cpp] view
plaincopyprint?
//下拉刷新相关代码---------------
//重加载事件
- (void) reloadTableViewDataSource{
_reloading = YES;
//这里引用你加载数据的方法
}
//加载结束事件
- (void)doneLoadingTableViewData{
// model should call this when its done loading
_reloading = NO;
if (得到的数组数是大于0的) {
[self.table reloadData];
}else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"获取数据失败或网络异常" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
[alert show];
[alert release];
}
[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.table];
}#pragma mark -#pragma mark UIScrollViewDelegate Methods
//table也是scrollview所以只要滚动就会调用这个方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"Scrolling...");
[_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
}
//滚动结束就会调用这个方法
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"Scrolling Stoped...");
[_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
}
#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods
//释放更新
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
//
// [self reloadTableViewDataSource];
[NSThread detachNewThreadSelector:@selector(reloadTableViewDataSource) toTarget:self withObject:nil];
// [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 - View lifecycle
//手动调用下拉刷新的代码 --------------
-(void) ViewFrashData
{
[self.tabNews setContentOffset:CGPointMake(0, -75) animated:YES];
[self performSelector:@selector(doneManualRefresh) withObject:nil afterDelay:0.4];
}
-(void)doneManualRefresh
{
[_refreshHeaderView egoRefreshScrollViewDidScroll:self.tabNews];
[_refreshHeaderView egoRefreshScrollViewDidEndDragging:self.tabNews];
}
//下拉刷新相关代码---------------
//手动调用下拉刷新的代码 --------------
//刷新按钮事件
- (void) reloadInfo
{
//手动下拉刷新相关
[self ViewFrashData];
}
- (void)viewDidLoad
{[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//下拉刷新相关
if (
_refreshHeaderView ==nil) {
EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f,0.0f - self.tabNews.bounds.size.height,self.view.frame.size.width,self.tabNews.bounds.size.height)];
//0,-416,320,416
NSLog(@"%f",self.tabNews.bounds.size.height);
view.delegate = self;
[self.tabNewsaddSubview:view];
_refreshHeaderView = view;
[view release];
}
// update the last update date
[_refreshHeaderViewrefreshLastUpdatedDate];
//如果需要进入view或按刷新按钮就出现下拉加载效果。可以直接调用reloadInfo方法
相关文章推荐
- iOS UITableView下拉刷新上拉加载更多MJRefresh类库(推荐)使用初级剑侠篇(欢迎提建议和分享遇到的问题)
- iOS开发>>>UITableView下拉刷新控件的使用
- iOS之UITableView的使用—下拉刷新
- IOS系列——UItableview的基础使用
- IOS开发~UISCrollView与UITableView嵌套使用终极解决方案
- iOS开发UI基础—27使用UItableview完成一个简单的QQ好友列表(一)
- iOS--UITableView的详细使用
- ios-day09-02(QQ好友列表。自定义UITableViewHeaderFooterView、如何控制UITableView每一组的展开和闭合、代理的使用)
- IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果(五)
- IOS怎么实现一个UITableView的下拉刷新
- iOS—简单封装UITableView使用1
- ios--UITableview的基本使用方法
- IOS开发UI篇—UITableview控件使用小结
- 【iOS开发】UITableView的使用
- iOS使用UIPageViewController结合多个UITableView后点击状态栏无法让UITableView置顶问题
- iOS开发UI篇—UITableview控件基本使用
- 【iOS系列】-UITableView的使用
- 【ios开发学习 - 第五课】UITableView使用
- iOS 使用Autolayout实现UITableView的Cell动态布局和高度动态改变
- iOS 最全的UITableView的各种使用方法