iOS功能实现之列表的横向刷新加载

库命名为PSRefresh,支持UIScrollView及所有UIScrollView的子类控件,UITableView(横向的tableVIew)及UICollectionView等皆可。

支持自定义文字,支持自定义gif图,可设置是否为最后一页。

本文一共提供了三种样式,分别是普通样式gif加载样式(带有状态label)、git加载样式(不带有状态label)。

Demo展示如下:

使用时导入 "UIScrollView+PSRefresh.h" 文件即可,文件中提供的属性及接口如下:

@interface UIScrollView (PSRefresh)

/**
 * 是否是最后一页
 */
@property (nonatomic, assign) BOOL isLastPage;

/**
 * header背景色
 */
@property (nonatomic, strong) UIColor *refreshHeaderBackgroundColor;

/**
 * footer背景色
 */
@property (nonatomic, strong) UIColor *refreshFooterBackgroundColor;

/**
 * header 字体
 */
@property (nonatomic, strong) UIFont *refreshHeaderFont;

/**
 * header 字体颜色
 */
@property (nonatomic, strong) UIColor *refreshHeaderTextColor;

/**
 * footer 字体
 */
@property (nonatomic, strong) UIFont *refreshFooterFont;

/**
 * footer 字体颜色
 */
@property (nonatomic, strong) UIColor *refreshFooterTextColor;

/**
 * ********************** 以下是调用的方法 **********************
 */
/**
 * 普通的刷新及加载
 */
- (void)addRefreshHeaderWithClosure:(PSRefreshClosure)closure;

- (void)addRefreshFooterWithClosure:(PSRefreshClosure)closure;

/**
 * gif 图刷新及加载(带有状态提示)
 */
- (void)addGifRefreshHeaderWithClosure:(PSRefreshClosure)closure;

- (void)addGifRefreshFooterWithClosure:(PSRefreshClosure)closure;

/**
 * gif 图刷新及加载(不带有状态提示)
 */
- (void)addGifRefreshHeaderNoStatusWithClosure:(PSRefreshClosure)closure;

- (void)addGifRefreshFooterNoStatusWithClosure:(PSRefreshClosure)closure;

/**
 * ****************** 以下三个方法是对上面方法的再次封装 ******************
 */
/**
 * 普通的刷新及加载
 */
- (void)addRefreshHeaderWithClosure:(PSRefreshClosure)headerClosure
  addRefreshFooterWithClosure:(PSRefreshClosure)footerClosure;

/**
 * gif 图刷新及加载(带有状态提示)
 */
- (void)addGifRefreshHeaderWithClosure:(PSRefreshClosure)headerClosure
  addGifRefreshFooterWithClosure:(PSRefreshClosure)footerClosure;

/**
 * gif 图刷新及加载(不带有状态提示)
 */
- (void)addGifRefreshHeaderNoStatusWithClosure:(PSRefreshClosure)headerClosure
  addGifRefreshFooterNoStatusWithClosure:(PSRefreshClosure)footerClosure;

/**
 * 结束刷新
 */
- (void)endRefreshing;

@end

调用时可以有两种方法,可以同时添加头部控件和尾部控件,也可以分别进行添加,方法如下(这里只列举一种调用方法,只是为了展示两种不同的调用方式):

(1) 同时添加:

- (void)normalDemo {
 WeakSelf(self)
 [_collectionView addRefreshHeaderWithClosure:^{
  // 刷新操作
  [weakSelf refreshData];
 } addRefreshFooterWithClosure:^{
  // 加载操作
  [weakSelf loadingData];
 }];
}

(2) 分别添加:

- (void)normalDemo {
 WeakSelf(self)
 [_collectionView addRefreshHeaderWithClosure:^{
  // 刷新操作
  [weakSelf refreshData];
 }];

 [_collectionView addRefreshFooterWithClosure:^{
  // 加载操作
  [weakSelf loadingData];
 }];
}

总结

调用方式大致和MJRefresh相同,针对具体项目大家可以进行相应的调整。以上就是本文的全部内容,希望对大家开发IOS有所帮助。

(0)

相关推荐

  • iOS开发之UITableView与UISearchController实现搜索及上拉加载,下拉刷新实例代码

    废话不多说了,直接给大家贴代码了. 具体代码如下所示: #import "ViewController.h" #import "TuanGouModel.h" #import "TuanGouTableViewCell.h" #define kDeviceWidth [UIScreen mainScreen].bounds.size.width #define kDeviceHeight [UIScreen mainScreen].bounds.

  • iOS上下拉刷新控件MJRefresh使用方法详解

    MJRefresh是一个好用的上下拉刷新的控件,github地址如下:https://github.com/CoderMJLee/MJRefresh很多app都使用这个控件,我们也来了解一下它的用法.下面主要是介绍在UITableView下的使用. 使用 在github上下载之后,将MJRefresh文件添加到项目中,并且在需要使用的文件上引入MJRefresh.h.然后在该文件的viewDidLoad方法中指定tableView的header和footer,如下: #import "MJRef

  • 详解iOS App中UITableView的创建与内容刷新

    UITableView几乎是iOS开发中用处最广的一个控件,当然也是要记相当多东西的一个控件. 创建 首先创建一个新的项目,并添加一个MainViewController的Class文件 打开MainViewController.h文件 @interface MainViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, retain) NSArray

  • 详解iOS开发中UItableview控件的数据刷新功能的实现

    实现UItableview控件数据刷新 一.项目文件结构和plist文件 二.实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运行界面: 点击选中行: 修改数据后自动刷新: 三.代码示例 数据模型部分: YYheros.h文件 复制代码 代码如下: // //  YYheros.h //  10-英雄展示(数据刷新) // //  Created by apple on 14-5-29. //  Copyright (c) 2014年 itc

  • iOS表视图之下拉刷新控件功能的实现方法

    下拉刷新是重新刷新表视图或列表,以便重新加载数据,这种模式广泛用于移动平台,相信大家对于此也是非常熟悉的,那么iOS是如何做到的下拉刷新呢? 在iOS 6之后,UITableViewControl添加了一个refreshControl属性,该属性保持了UIRefreshControl的一个对象指针.UIRefreshControl就是表视图实现下拉刷新提供的类,目前该类只能用于表视图界面.下面我们就来试试该控件的使用. 编写代码之前的操作类似于前面几篇文章.代码如下: #import "View

  • iOS利用MJRefresh实现自定义刷新动画效果

    本文主要介绍iOS 利用MJRefresh实现自定义动画的上拉刷新下拉加载效果,一般的类型(包括更新时间与loading图案)这里不做介绍. 要想实现此功能,首先得有一套load的图片数组. 接下来就是实现过程: 引入头文件: #import "MJRefresh.h" //自定义一个方法实现 - (void)prepareRefresh { NSMutableArray *headerImages = [NSMutableArray array]; for (int i = 1; i

  • 举例讲解iOS中延迟加载和上拉刷新/下拉加载的实现

    lazy懒加载(延迟加载)UITableView 举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要滑动经过了,图片就开始加载了,这样用户体验就不太好,而且浪费内存.              这个时候,我们就可以利用lazy加载技术,当界面滑动或者滑动减速的时候,都不进行图片加载,只有当用户不再滑动并且减速效果停止的时候,才进行加载.               刚开始我异步加载图片利用SDWe

  • iOS tableView上拉刷新显示下载进度的问题及解决办法

    一,点击下载按钮后,调用的时afnetworking的downLoad方法,具体代码如下 @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> { XLCircleProgress *_circle; CGFloat _progress; } @property (strong,nonatomic) NSURLSessionDownloadTask *downloadTask; @property (st

  • iOS编写下拉刷新控件

    现在iOS里有很多成熟的下拉刷新控件,比如MJRefresh,SVPullToRefresh 我这里参考了SV的写法,但是回调用的是代理,没有用block,个人感觉用代理更简洁一点 下拉刷新的基本原理 在scrollview的上面和下面分别添加一个view,上面的是下拉的时候展示下拉动画的headerView,下面的是上拉加载更多的时候展示动画的footerView 这里的headerView和footerView都是自己添加的,和tableView自己的header,footer不一样 hea

  • iOS实现MJRefresh下拉刷新(上拉加载)使用详解

    下拉刷新控件目前比较火的有好几种,本人用过MJRefresh 和 SVPullToRefresh,相对而言,前者比后者可定制化.拓展新都更高一点. 因此本文着重讲一下MJRefresh的简单用法. 导入项目: cocoapods导入:pod 'MJRefresh' 手动导入: 将MJRefresh文件夹中的所有文件拽入项目中 导入主头文件:#import "MJRefresh.h" 使用介绍: 广泛性分为6种使用场景,分别对应:默认.动画图片.隐藏时间.隐藏时间和状态.自定义文字说明.

随机推荐