美文网首页
MJRefresh的扩展使用

MJRefresh的扩展使用

作者: 攻克乃还_ | 来源:发表于2016-11-23 10:34 被阅读31次

众所周知,刷新在我们的应用中使用频率是很高的,一般的应用也不只是一个界面需要我们来进行刷新操作,所以今天所讲的刷新的地位就不言而喻了。

首先我们要明确使用这个功能的场景,我们需要在很多的页面里使用,难道我们要在不同的页面里不断的复制粘贴我们的相同代码吗?不是的,作为一个有经验的程序员,她会这么做:继承。

那么我们要继承谁呢?MJRefresh,提供了类的继承图。在这里不得不说:明杰欧巴,爱你么么哒。

在这里我们看到MJRefreshNormalHeader和MJRefreshGifHeader,第一个类是我们的普通刷新类,第二个类是在普通刷新类上加了gif动态图,这里我们要继承的是第一个类MJRefreshNormalHeader。

- (void)prepare;是父类的方法,要继承MJRefreshNormalHeader,就要实现这个方法,并且[super prepare];

明杰欧巴写的刷新的控件是可以根据具体需求改变的,像是上方加个你公司的Logo。

代码示例:

- (void)prepare

{

[super prepare];

self.automaticallyChangeAlpha = YES;

self.lastUpdatedTimeLabel.textColor = [UIColor orangeColor];

self.stateLabel.textColor = [UIColor orangeColor];

[self setTitle:@"赶紧下拉吧" forState:MJRefreshStateIdle];

[self setTitle:@"赶紧松开吧" forState:MJRefreshStatePulling];

[self setTitle:@"正在加载数据..." forState:MJRefreshStateRefreshing];

[self addSubview:[[UISwitch alloc] init]];

UIImageView *logo = [[UIImageView alloc] init];

logo.image = [UIImage imageNamed:@"bd_logo1"];

[self addSubview:logo];

self.logo = logo;

}

/**

*  摆放子控件

*/

- (void)placeSubviews

{

[super placeSubviews];

self.logo.xmg_width = self.xmg_width;

self.logo.xmg_height = 50;

self.logo.xmg_x = 0;

self.logo.xmg_y = - 50;

}

写好继承类以后,该如何使用呢?那么就简单了。总共分三步:

第一步:把冰箱门打开。导入刚刚类的头文件。

第二部:把大象装进去。使用MJRefreshHeader的类方法,headerWithRefreshingTarget:refreshingAction:此方法可以让你在刷新时候执行另一个方法,一般在此方法中加载后台的数据,值得注意的是,在加载数据之后无论加载成功或是失败都需要在此结束刷新,如不刷新,则刷新不会结束。

[self.tableView.mj_header endRefreshing];

如果要应用一进来页面就开始刷新,则加上这一句:

[self.tableView.mj_header beginRefreshing];

代码示例:

- (void)setupRefresh

{

self.tableView.mj_header = [SUNRefreshHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewTopics)];

[self.tableView.mj_header beginRefreshing];

}

第三部:把冰箱门关上。没有了。

下拉刷新和上拉类似,最好都写成继承的类,根据需求继承MJRefreshAutoNormalFooter或者是MJRefreshBackNormalFooter。这里需要提到的是两个属性。


triggerAutomaticallyRefreshPercent用来设置刷新控件出现的百分比到多少时候,开始刷新。

automaticallyRefresh用来设置控件是否要自动刷新。

代码示例:

self.triggerAutomaticallyRefreshPercent = 0.5;

self.automaticallyRefresh = NO;

相关文章

  • MJRefresh的扩展使用

    众所周知,刷新在我们的应用中使用频率是很高的,一般的应用也不只是一个界面需要我们来进行刷新操作,所以今天所讲的刷新...

  • MJRefresh简单使用

    MJRefresh简单使用 导入MJRefresh.h文件即可

  • MJRefresh

    MJRefresh原理分析从MJRefresh源码学习上拉下刷新的基本原理MJRefresh源码阅读使用Xtrac...

  • MJRefresh使用

    模拟网络请求 对 MJRefresh 进行扩展 实现上下拉刷新ViewModelimport RxSwiftimp...

  • swift-刷新

    一、swift 中使用MJRefresh MJRefresh虽然是OC版本的,但确能在swift项目中直接使用并不...

  • 浅读MJRefresh后自定义了个UIScrollView监听滚

    一、前言 最近在解答[最新版]MJRefresh解析与详细使用指导和MJRefresh实现刷新(使用它的Block...

  • 分析MJRefresh框架,并模拟下拉刷新

    分析:MJRefresh框架主要使用了分层的设计思想,基类和很多子类,每个类做什么都分工明确,所以也就使得可扩展性...

  • 06 MJRefresh的使用

    参考iOS122 和 MJRefresh的git地址 1. 如何使用MJRefresh cocoapods导入:p...

  • MJRefresh的使用

    MJRefresh 是一个优秀的下拉刷新组件。github 地址

  • MJRefresh的使用

    MJRefresh的封装和使用http://www.jianshu.com/p/4ea427bab0afhttps...

网友评论

      本文标题:MJRefresh的扩展使用

      本文链接:https://www.haomeiwen.com/subject/magmpttx.html