上拉刷新和下拉刷新
来源:互联网 发布:熊出没之淘宝熊兵 编辑:程序博客网 时间:2024/04/28 11:00
首先,用到的第三方库是EGOTableViewPullRefresh,需要手动添加到工程
下拉刷新
第一步,定义两个bool值的成员变量和三个方法 .h中
BOOL _pullDown;//代表当前tableView是否使用下拉刷新
BOOL _isRefresh;//代表是否正在下拉刷新
//是否使用下拉刷新
-(void)setPulldownfresh:(BOOL)isRefresh;
//触发下拉刷新
-(void)pullDownRefresh;
//结束下拉刷新
-(void)endPullDownRefresh;
第二步, .m中包含ego头文件,遵守协议EGORefreshTableHeaderDelegate,定义ego成员变量
EGORefreshTableHeaderView *_refreshView;
//下拉刷新
-(void)setPulldownfresh:(BOOL)isRefresh
{
_pullDown = isRefresh;
if (isRefresh) {
_refreshView = [[EGORefreshTableHeaderViewalloc] initWithFrame:CGRectMake(0, -460,320, 460)];
_refreshView.delegate =self;
[_tableViewaddSubview:_refreshView];
[_refreshViewrelease];
}else{
if (_refreshView) {
[_refreshViewremoveFromSuperview];
_refreshView = nil;
}
}
}
#pragma mark-
#pragma mark scrollView的代理方法
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
[_refreshViewegoRefreshScrollViewDidEndDragging:scrollView];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[_refreshViewegoRefreshScrollViewDidScroll:scrollView];
}
#pragma mark-
#pragma mark ego代理方法
-(NSDate *)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView *)view
{
return [NSDate date];
}
//是否正在刷新
-(BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView *)view
{
return_isRefresh;
}
//触发下拉刷新
-(void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView *)view
{
_isRefresh = YES;
[selfpullDownRefresh];
}
#pragma mark-
#pragma mark 下拉刷新方法
//开始下拉刷新
-(void)pullDownRefresh
{
}
//结束下拉刷新
-(void)endPullDownRefresh
{
[_refreshViewegoRefreshScrollViewDataSourceDidFinishedLoading:_tableView];
_isRefresh = NO;
}
1、.h
BOOL _pullUp;//代表当前tableView是否使用上拉刷新
//是否使用上拉刷新
-(void)setPullUpRefresh:(BOOL)isRefresh;
//触发上拉刷新
-(void)pullUpRefresh;
2、.m
#pragma mark-
#pragma mark scrollView的代理方法
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
[_refreshViewegoRefreshScrollViewDidEndDragging:scrollView];
//上拉刷新实现
if (_pullUp && scrollView.frame.size.height + scrollView.contentOffset.y > scrollView.contentSize.height +50) {
[selfpullUpRefresh];
}
}
#pragma mark-
#pragma mark 上拉刷新
//是否使用上拉刷新
-(void)setPullUpRefresh:(BOOL)isRefresh
{
_pullUp = isRefresh;
}
//触发上拉刷新
-(void)pullUpRefresh
{
}
在代码中,进行下拉和上拉操作
- (void)viewDidLoad
{
[superviewDidLoad];
_page = 1;
[selfsetUrl];
[selfstartRequest];
//添加下拉刷新
[selfsetPulldownfresh:YES];
//添加上拉刷新
[selfsetPullUpRefresh:YES];
}
//触发下拉刷新
-(void)pullDownRefresh
{
_page = 1;
[selfsetUrl];
[selfstartRequest];
}
//触发上拉刷新
-(void)pullUpRefresh
{
_page++;
[selfsetUrl];
[selfstartRequest];
}
-(void)setUrl
{
self.url = [NSStringstringWithFormat:@"http://iappfree.candou.com:8080/free/applications/limited?page=%d&number=20",_page];
}
-(void)startRequest
{
[QFHTTPMangerrequestWithURL:self.urlFinishBlock:^(NSData *data) {
//如果下拉刷新,清空数组
if (_isRefresh) {
[_dataArrayremoveAllObjects];
}
NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:dataoptions:0error:nil];
NSArray *applications = dic[@"applications"];
for (NSDictionary *appDicin applications) {
AppModel *appModel = [[AppModelalloc] init];
//kvc
[appModelsetValuesForKeysWithDictionary:appDic];
[_dataArrayaddObject:appModel];
[appModelrelease];
}
[_tableViewreloadData];
//结束下拉刷新
if (_pullDown) {
[selfendPullDownRefresh];
}
} FailedBlock:^{
NSLog(@"请求失败");
}];
}
- 上拉刷新和下拉刷新
- PullToRefresh上拉刷新和下拉刷新
- PullToRefreshListView上拉刷新和下拉刷新
- SwipeRefreshLayout 上拉刷新和下拉刷新
- IOS数据刷新(上拉刷新和下拉刷新)
- 下拉刷新和上拉加载更多
- UITableView:下拉刷新和上拉加载
- Android PullToRefresh上拉和下拉刷新
- iOS 上拉加载和下拉刷新
- 上拉和下拉刷新的原理
- ListView 上拉和下拉刷新控件
- MaterialRefreshLayout(下拉刷新和上拉加载)
- RecycleView上拉加载和下拉刷新
- RecyclerView 下拉刷新和上拉加载
- 上拉加载和下拉刷新
- XListView上拉加载和下拉刷新
- PullToRefresh下拉刷新和上拉加载
- SwipeRefreshLayout下拉刷新和上拉加载
- zoj 2022 Factorial}
- linux查看系统版本和系统位数
- activity 堆栈管理
- 贴片陶瓷电容的NPO、C0G、X7R、X5R、Y5V、Z5U辨析
- ThinkPHP学习心得
- 上拉刷新和下拉刷新
- swift中NSLayoutConstraint布局的使用
- ubuntu12.04安装arm-linux-gcc详解
- Linux安装无线网卡驱动,实现Linux无线上网
- LUA注释语法
- Emacs for PHP
- NGUI之Scroll Bar
- 在W7部署WebService,报错“C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限”
- juce基本模板