MJRefresh的扩展使用

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

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

那么我们要继承谁呢?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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容