用MJRefresh类库实现下拉刷新

本文介绍了如何使用第三方库MJRefresh在iOS应用中实现下拉刷新和上拉加载效果。通过导入相关框架,配置PCH文件,并在Controller中设置刷新属性和代理方法,可以轻松创建刷新功能。内容包括自定义假数据和实现懒加载。
摘要由CSDN通过智能技术生成

我们经常能在APP上看到下拉,上拉刷新的效果,下面介绍用第三方类库实现这个功能,其中加载用的数据是自己写的假数据.
用的第三方类库是MJRefresh
类库和demo都要在这里 http://download.csdn.net/detail/reikomiao/9164241

新建一个Controller继承于UITableViewController
准备工作
1.导入MJRefresh的第三方类库
2.导入系统的 CoreGraphics.framework UIKit.framework Foundation.framework框架
这里写图片描述
3.建立一个PCH文件,并且导入下面两个头文件,因为类库里没有引入下面两个头文件

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

4.在Build Settings ->Apple LLVM 6.1 - Preprocessing 把下面的置为NO,否则会报错,我也不知道为什么╮(╯_╰)╭
这里写图片描述

——————————–准备工作结束————————————-
下面开始写代码
在Controller中导入头文件

#import "MJRefresh.h"

在viewDidLoad调用刷新的方法

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
    [self setUpRefresh];

}

写一个假数据,用产生随机数的方法获得数据,利用懒加载的方法

// 数据的懒加载
- (NSMutableArray *)dataArray
{

    _dataArray = [NSMutableArray array];
    for (int i = 0; i < 14; i++) {
    NSString *RandomData =  [NSString stringWithFormat:@"第%d行---%d",i, arc4random_uniform(100)];
        [_dataArray addObject:RandomData];
    }
    return _dataArray;

}

刷新属性的设置

- (void)setUpRefresh
{
    // 1.下拉刷新,添加一个下拉刷新头部控件
    [self.tableView addHeaderWithTarget:self action:@selector(headerRereshing)];
    // 一进入程序就下拉刷新
    [self.tableView headerBeginRefreshing];
    //2.上拉刷新
    [self.tableView addFooterWithTarget:self action:@selector(footerRereshing)];

    // 设置文字
    self.tableView.headerPullToRefreshText = @"下拉可以刷新";
    self.tableView.headerReleaseToRefreshText = @"松开马上刷新";
    self.tableView.headerRefreshingText = @"正在加载";

    self.tableView.footerPullToRefreshText = @"下拉可以刷新";
    self.tableView.footerReleaseToRefreshText = @"松开马上刷新";
    self.tableView.footerRefreshingText = @"正在加载";

}

- (void)headerRereshing
{
    // 2.0秒之后刷新表格
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.tableView reloadData];
        [self.tableView headerEndRefreshing];
    });
}
- (void)footerRereshing
{
    // 2.0秒后刷新表格UI
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        // 刷新表格
        [self.tableView reloadData];
        // (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态
        [self.tableView footerEndRefreshing];
    });

}

tableView的代理方法

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return self.dataArray.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

    cell.textLabel.text = self.dataArray[indexPath.row];    
    return cell;
}

效果图
下拉刷新
这里写图片描述

上拉刷新
这里写图片描述

想写一下conllectionView的刷新也想写一下conllectionView在Xcode7中新添加的编辑功能,正在酝酿(才不是懒呢)(:з」∠)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值