MJRefresh, 仅需几行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。
下载下来自己试了下,发现不错。 mark下。
下载链接:http://code4app.com/ios/快速集成下拉上拉刷新/52326ce26803fabc46000000
下面纪录下自己的集成过程,当然,作者所给的demo里面已经很详细的给出了。 这里只不过是纪录下自己的实现过程而已。
1.将MJRefresh文件夹整个导入所需的工程中。
2.文件夹中的MJRefresh.bundle--->arrow@2x.png 图片可自行替换,这个会在刷新过程中显示。
3.可以在MJRefreshConst.h和MJRefreshConst.m文件中自定义显示的文字内容和文字颜色。
4.只要你的view能够滚动,就能集成这个控件,比如UIScrollView、UITableView、UICollectionView
5.在需要使用的地方,加入如下代码即可。
5.1 导入头文件
1 #import "MJRefresh.h"
5.2 遵从协议
1 @interface ViewController ()<MJRefreshBaseViewDelegate>
5.3 为你的view添加控件
1 MJRefreshFooterView *footer = [MJRefreshFooterView footer];
2 footer.scrollView = myTableView;
3 footer.delegate = self;
4
5 MJRefreshHeaderView *header = [MJRefreshHeaderView header];
6 header.scrollView = myTableView;
7 header.delegate = self;
5.4实现代理方法
1 #pragma mark - 刷新控件的代理方法
2 #pragma mark 开始进入刷新状态
3 - (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView
4 {
5 NSLog(@"%@----开始进入刷新状态", refreshView.class);
6 // 2.2秒后刷新表格UI
7 [self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];
8
9 }
10
11 #pragma mark 刷新完毕
12 - (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView
13 {
14 NSLog(@"%@----刷新完毕", refreshView.class);
15 }
16
17 #pragma mark 监听刷新状态的改变
18 - (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state
19 {
20 switch (state) {
21 case MJRefreshStateNormal:
22 NSLog(@"%@----切换到:普通状态", refreshView.class);
23 break;
24
25 case MJRefreshStatePulling:
26 NSLog(@"%@----切换到:松开即可刷新的状态", refreshView.class);
27 break;
28
29 case MJRefreshStateRefreshing:
30 NSLog(@"%@----切换到:正在刷新状态", refreshView.class);
31 break;
32 default:
33 break;
34 }
35 }
36
37 #pragma mark 刷新表格并且结束正在刷新状态
38 - (void)doneWithView:(MJRefreshBaseView *)refreshView
39 {
40 // 刷新表格
41 [myTableView reloadData];
42
43 // (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态
44 [refreshView endRefreshing];
45 }
6.你可以通过调用beginRefreshing自动进入下拉刷新状态。
7.你可以通过调用endRefreshing结束刷新状态。
8.为了保证内部不泄露,最好在控制器的dealloc中释放占用的内存
- (void)dealloc
{
[_header free];
[_footer free];
}