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

2020-01-18 19:56:15王振洲

5、下拉刷新 自定义文字

想自己DIY个性文字描述,一样很简单。

不管是文字text、文字大小、还是颜色都一句话搞定。

mjrefresh下拉刷新,ios下拉刷新实现原理,ios,下拉刷新动画

mjrefresh下拉刷新,ios下拉刷新实现原理,ios,下拉刷新动画


#pragma mark UITableView + 下拉刷新 自定义文字

- (void)example05

{

  // 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)

  MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];

   

  // 设置文字

  [header setTitle:@"快扯我,快点" forState:MJRefreshStateIdle];

  [header setTitle:@"数据要来啦" forState:MJRefreshStatePulling];

  [header setTitle:@"服务器正在狂奔 ..." forState:MJRefreshStateRefreshing];

   

  // 设置字体

  header.stateLabel.font = [UIFont systemFontOfSize:15];

  header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:14];

 

  // 设置颜色

  header.stateLabel.textColor = [UIColor redColor];

  header.lastUpdatedTimeLabel.textColor = [UIColor grayColor];

   

  // 马上进入刷新状态

  [header beginRefreshing];

   

  // 设置刷新控件

  self.tableView.mj_header = header;

} 

6、下拉刷新 自定义刷新控件

上面的都不够玩,怎么办,没关系,还有最后一种更定制化的方法:自己加控件样式。

mjrefresh下拉刷新,ios下拉刷新实现原理,ios,下拉刷新动画

mjrefresh下拉刷新,ios下拉刷新实现原理,ios,下拉刷新动画

mjrefresh下拉刷新,ios下拉刷新实现原理,ios,下拉刷新动画

这里不限于任何控件,我们可以在头部的这片区域,尽情添加Subviews,但记住一点,高度千万不要吵过header高度(默认60)。

除了控件,甚至可以自己绘制动画等等。

实现原理:同样先自定义自己的类,继承 MJRefreshHeader

重写 prepare 方法,再重写 placeSubviews 方法 设置位置。

代码:

a、定义控件属性


@interface MJDIYHeader()

@property (weak, nonatomic) UILabel *label;

@property (weak, nonatomic) UISwitch *s;

@property (weak, nonatomic) UIImageView *logo;

@property (weak, nonatomic) UIActivityIndicatorView *loading;

@end