Без опису

MJLee 1caed0fa8a Update MD 10 роки тому
MJRefreshExample 039f10e8d8 Add webView example 10 роки тому
MJRefreshScreenshots d11fb47601 Update pod to lastest version 10 роки тому
.gitignore 9ea9aa61d2 Nothing important 11 роки тому
LICENSE 2650843c05 Modify podspec 11 роки тому
MJRefresh.podspec e36f88ddc7 Change animation effects 10 роки тому
README.md 1caed0fa8a Update MD 10 роки тому

README.md

MJRefresh

The easiest way to use pull-to-refresh

支持哪些控件的刷新

  • UIScrollViewUITableViewUICollectionViewUIWebView

如何使用MJRefresh

  • cocoapods导入:pod 'MJRefresh'
  • 手动导入:

    • MJRefreshExample/MJRefreshExample/MJRefresh文件夹中的所有文件拽入项目中
    • 导入主头文件:#import "MJRefresh.h"

      MJRefresh.bundle
      MJRefresh.h
      MJRefreshComponent.h        MJRefreshComponent.m
      MJRefreshConst.h            MJRefreshConst.m
      MJRefreshFooter.h           MJRefreshFooter.m
      MJRefreshGifFooter.h        MJRefreshGifFooter.m
      MJRefreshGifHeader.h        MJRefreshGifHeader.m
      MJRefreshHeader.h           MJRefreshHeader.m
      MJRefreshLegendFooter.h     MJRefreshLegendFooter.m
      MJRefreshLegendHeader.h     MJRefreshLegendHeader.m
      UIScrollView+MJExtension.h  UIScrollView+MJExtension.m
      UIScrollView+MJRefresh.h    UIScrollView+MJRefresh.m
      UIView+MJExtension.h        UIView+MJExtension.m
      

具体用法

* 由于这个框架的功能较多,就不写具体文字描述其用法
* 大家可以直接参考示例中的MJTableViewController和MJCollectionViewController,更为直观快速

下拉刷新01-传统

(下拉刷新01-传统)

// 添加传统的下拉刷新
[self.tableView addLegendHeaderWithRefreshingBlock:^{
   // 进入刷新状态后会自动调用这个block
}];
或
// 添加传统的下拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)
[self.tableView addLegendHeaderWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];

// 马上进入刷新状态
[self.tableView.header beginRefreshing];

下拉刷新02-动画图片

(下拉刷新02-动画图片)

// 添加动画图片的下拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)
[self.tableView addGifHeaderWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// 设置普通状态的动画图片
[self.tableView.gifHeader setImages:idleImages forState:MJRefreshHeaderStateIdle];
// 设置即将刷新状态的动画图片(一松开就会刷新的状态)
[self.tableView.gifHeader setImages:pullingImages forState:MJRefreshHeaderStatePulling];
// 设置正在刷新状态的动画图片
[self.tableView.gifHeader setImages:refreshingImages forState:MJRefreshHeaderStateRefreshing];

下拉刷新03-隐藏时间

(下拉刷新03-隐藏时间)

// 隐藏时间
self.tableView.header.updatedTimeHidden = YES;

下拉刷新04-隐藏状态和时间01

(下拉刷新04-隐藏状态和时间01)

// 隐藏时间
self.tableView.header.updatedTimeHidden = YES;
// 隐藏状态
self.tableView.header.stateHidden = YES;

下拉刷新05-隐藏状态和时间02

(下拉刷新05-隐藏状态和时间02)

下拉刷新06-自定义文字

(下拉刷新06-自定义文字)

// 设置文字
[self.tableView.header setTitle:@"Pull down to refresh" forState:MJRefreshHeaderStateIdle];
[self.tableView.header setTitle:@"Release to refresh" forState:MJRefreshHeaderStatePulling];
[self.tableView.header setTitle:@"Loading ..." forState:MJRefreshHeaderStateRefreshing];

// 设置字体
self.tableView.header.font = [UIFont systemFontOfSize:15];

// 设置颜色
self.tableView.header.textColor = [UIColor redColor];

上拉刷新01-传统

(上拉刷新01-传统)

// 添加传统的上拉刷新
[self.tableView addLegendFooterWithRefreshingBlock:^{
   // 进入刷新状态后会自动调用这个block
}];
或
// 添加传统的上拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)
[self.tableView addLegendFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

上拉刷新02-动画图片

(上拉刷新02-动画图片)

// 添加动画图片的上拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)
[self.tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

// 设置正在刷新状态的动画图片
self.tableView.gifFooter.refreshingImages = refreshingImages;

上拉刷新03-隐藏状态01

(上拉刷新03-隐藏状态01)

// 隐藏状态
self.tableView.footer.stateHidden = YES;

上拉刷新04-隐藏状态02

(上拉刷新04-隐藏状态02)

上拉刷新05-全部加载完毕

(上拉刷新05-全部加载完毕)

// 变为没有更多数据的状态
[self.tableView.footer noticeNoMoreData];

上拉刷新06-禁止自动加载

(上拉刷新06-禁止自动加载)

// 禁止自动加载
self.tableView.footer.automaticallyRefresh = NO;

上拉刷新07-自定义文字

(上拉刷新07-自定义文字)

// 设置文字
[self.tableView.footer setTitle:@"Click or drag up to refresh" forState:MJRefreshFooterStateIdle];
[self.tableView.footer setTitle:@"Loading more ..." forState:MJRefreshFooterStateRefreshing];
[self.tableView.footer setTitle:@"No more data" forState:MJRefreshFooterStateNoMoreData];

// 设置字体
self.tableView.footer.font = [UIFont systemFontOfSize:17];

// 设置颜色
self.tableView.footer.textColor = [UIColor blueColor];

上拉刷新08-加载后隐藏

(上拉刷新08-加载后隐藏)

// 隐藏当前的上拉刷新控件
self.tableView.footer.hidden = YES;

UICollectionView01-上下拉刷新

(UICollectionView01-上下拉刷新)

// 添加传统的下拉刷新
[self.collectionView addLegendHeaderWithRefreshingBlock:^{
   // 进入刷新状态后会自动调用这个block
}];
// 添加传统的上拉刷新
[self.collectionView addLegendFooterWithRefreshingBlock:^{
   // 进入刷新状态后会自动调用这个block
}];

UIWebView01-下拉刷新

(UIWebView01-下拉刷新)

// 添加下拉刷新控件
[self.webView.scrollView addLegendHeaderWithRefreshingBlock:^{
    // 进入刷新状态后会自动调用这个block
}];

提醒

  • 本框架纯ARC,兼容的系统>=iOS6.0、iPhone\iPad横竖屏

期待

  • 如果在使用过程中遇到BUG,希望你能Issues我,谢谢(或者尝试下载最新的框架代码看看BUG修复没有)
  • 如果在使用过程中发现功能不够用,希望你能Issues我,我非常想为这个框架增加更多好用的功能,谢谢
  • 如果你想为MJRefresh输出代码,请拼命Pull Requests我
  • 一起携手打造天朝乃至世界最好用的刷新框架,做天朝程序员的骄傲
  • 如果你开发的应用中用到了MJRefresh,希望你能到CocoaControls添加你应用的iTunes路径,我将会安装使用你的应用,并且根据众多应用的使用情况,对MJRefresh进行一个更好的设计和完善,提供更多好用的功能,谢谢
    • 步骤01(微信是举个例子,百度“你的应用名称 itunes”) (step01)
    • 步骤02 (step02)
    • 步骤03 (step03)
    • 步骤04 (step04)