UITableableview上拉下拉刷新

#import "ViewController.h"

//加入引用的头文件

#import "UIView+MJExtension.h"

#import "MJRefresh.h"

static
const CGFloat MJDuration =
2.0;

@interface
ViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic,strong)UITableView *tableView;

@end

@implementation ViewController

#pragma mark UITableView + 下拉刷新
动画图片

- (void)example02

{

//
添加动画图片的下拉刷新

//
设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)

[self.tableView
addGifHeaderWithRefreshingTarget:self
refreshingAction:@selector(loadNewData)];

//
设置普通状态的动画图片

NSMutableArray *idleImages = [NSMutableArray
array];

for (NSUInteger i =
1; i<=60; i++) {

UIImage *image = [UIImage
imageNamed:[NSString
stringWithFormat:@"dropdown_anim__000%zd", i]];

[idleImages
addObject:image];

}

[self.tableView.gifHeader
setImages:idleImages forState:MJRefreshHeaderStateIdle];

//
设置即将刷新状态的动画图片(一松开就会刷新的状态)

NSMutableArray *refreshingImages = [NSMutableArray
array];

for (NSUInteger i =
1; i<=3; i++) {

UIImage *image = [UIImage
imageNamed:[NSString
stringWithFormat:@"dropdown_loading_0%zd", i]];

[refreshingImages
addObject:image];

}

[self.tableView.gifHeader
setImages:refreshingImages forState:MJRefreshHeaderStatePulling];

//
设置正在刷新状态的动画图片

[self.tableView.gifHeader
setImages:refreshingImages forState:MJRefreshHeaderStateRefreshing];

//
在这个例子中,即将刷新 和
正在刷新 用的是一样的动画图片

//
马上进入刷新状态

[self.tableView.gifHeader
beginRefreshing];

//
此时self.tableView.header == self.tableView.gifHeader

}

#pragma mark UITableView + 上拉刷新
动画图片

- (void)example12

{

//
添加动画图片的上拉刷新

//
设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)

[self.tableView
addGifFooterWithRefreshingTarget:self
refreshingAction:@selector(loadMoreData)];

//
设置正在刷新状态的动画图片

NSMutableArray *refreshingImages = [NSMutableArray
array];

for (NSUInteger i =
1; i<=3; i++) {

UIImage *image = [UIImage
imageNamed:[NSString
stringWithFormat:@"dropdown_loading_0%zd", i]];

[refreshingImages
addObject:image];

}

self.tableView.gifFooter.refreshingImages = refreshingImages;

//
此时self.tableView.footer == self.tableView.gifFooter

}

#pragma mark - 数据处理相关

#pragma mark 下拉刷新数据

- (void)loadNewData

{

// 1.模拟2秒后刷新表格UI(真实开发中,可以移除这段gcd代码)

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJDuration
* NSEC_PER_SEC)),
dispatch_get_main_queue(), ^{

// 刷新表格

[self.tableView
reloadData];

//
拿到当前的下拉刷新控件,结束刷新状态

[self.tableView.header
endRefreshing];

});

}

#pragma mark 上拉加载更多数据

- (void)loadMoreData

{

// 1.模拟2秒后刷新表格UI(真实开发中,可以移除这段gcd代码)

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJDuration
* NSEC_PER_SEC)),
dispatch_get_main_queue(), ^{

// 刷新表格

[self.tableView
reloadData];

//
拿到当前的上拉刷新控件,结束刷新状态

[self.tableView.footer
endRefreshing];

});

}

- (void)viewDidLoad {

[super
viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

_tableView = [[UITableView
alloc]initWithFrame:self.view.frame
style:UITableViewStylePlain];

_tableView.delegate =
self;

_tableView.dataSource =
self;

[self.view
addSubview:_tableView];

[self
example02];

[self
example12];

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

return 14;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath

{

static NSString *ID =
@"cell";

UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:ID];

if (cell == nil) {

cell = [[UITableViewCell
alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:ID];

}

cell.textLabel.text =
@"你好!";;

return cell;

}

@end

//MJRefresh刷新控件的链接

https://github.com/CoderMJLee/MJRefresh.git

时间: 2024-10-05 04:51:09

UITableableview上拉下拉刷新的相关文章

iOS 上拉下拉刷新

1 把李明杰的MJRfresh文件夹拖到工程中 2 然后引入头文件 3 在.m 文件中设置两个变量 4 在viewDidLoad里调用两个方法 5 实现需要调用的两个方法 iOS 上拉下拉刷新,布布扣,bubuko.com

打造android万能上拉下拉刷新框架——XRefreshView (二)

打造Android万能上拉下拉刷新框架--XRefreshView(一) 打造Android万能上拉下拉刷新框架--XRefreshView(三) 一.前言 自从上次发表了打造android万能上拉下拉刷新框架--XRefreshView (一)之后,期间的大半个月一直都非常忙.可是我每天晚上下班以后都有在更新和维护XRefreshView,也依据一些朋友的意见攻克了一些问题,这次之所以写这篇文章.是由于XRefreshView已经到了一个功能相对可靠和稳定的一个阶段.以下我会介绍下Xrefre

练习使用XRecyclerView,可上拉下拉刷新。

1 package com.lixu.testxrecyclerview; 2 import android.support.v7.app.AppCompatActivity; 3 import android.os.Bundle; 4 import android.support.v7.widget.StaggeredGridLayoutManager; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 im

打造android万能上拉下拉刷新框架——XRefreshView (一)

一.写在开头的话 之所以写这个东西是因为项目中有用到,需要给stickylistheaders加个刷新,其实就是个framelayout里面有个listview的自定义view布局,但是一些知名的刷新框架我试了下都不支持,pulltoRefresh和XListView都是自己实现了一个可刷新的view,然后让我们来直接使用这个可刷新的view,从而达到可以上拉下拉刷新的目的.我这个需求需要的是一个我告诉他什么时候需要刷新他就能帮我刷新的框架,也就是说不管什么view,只要能告诉框架自己什么时候需

打造Android万能上拉下拉刷新框架--XRefreshView(三)

转载请注明出处:http://blog.csdn.net/footballclub/ 打造Android万能上拉下拉刷新框架–XRefreshView(一) 打造Android万能上拉下拉刷新框架–XRefreshView(二) XRefreshView更新说明 这段时间一直有朋友给我反馈,让我帮忙解决问题,我汇总了下,有以下几种: 1. 处理listview滑动删除与XRefreshView的冲突 2. 处理viewpager和XRefreshView的冲突 3. listview滑动到底部自

ListView实现上拉下拉刷新加载功能

第一步.首先在你项目中创建一个包存放支持下拉刷新和上拉加载的类: 第二步.需要把两个动画导入进来,实现180度旋转与360度旋转: 第三步.需要把支持的下拉与上拉显示的隐藏加载布局给导入进来 第四步.需要添加strings.xml与colors.xml文件的内容添加到项目里面: strings.xml <string name="pull_to_refresh">下拉刷新</string> <string name="release_to_ref

iOS 上拉下拉刷新简单实现代码

一般说到上拉刷新下拉刷新,很多人可能想到的是一个第三方开源框架EGORefresh,下面说下,如何自己写代码实现. UITableView本身是一个UIScrollView,所以UITableView可以实现UIScrollView的代理方法.上拉和下拉刷新无非是UIScrollView偏移到一定程度调用刷新方法. 实现- (void)scrollViewDidScroll:(UIScrollView*)scrollView代理方法即可.代码如下: (void)scrollViewDidScro

android118 上拉下拉刷新列表listView实现

上拉下拉-不刷新特效

上拉下拉-不刷新特效 上拉刷新数据.下拉刷新数据.上拉不刷新数据.下拉不刷新数据 下载地址:http://www.devstore.cn/code/info/1022.html 运行截图:     版权声明:本文为博主原创文章,未经博主允许不得转载.