MJRefresh使用

  1. 使用weak,防止循环引用
 __weak __typeof(self) weakSelf = self;
    
    // 设置回调(一旦进入刷新状态就会调用这个refreshingBlock)
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [weakSelf loadNewData];
    }];
    
    // 马上进入刷新状态
    [self.tableView.mj_header beginRefreshing];

2.隐藏状态和时间|自定义状态文字(MJRefreshStateHeader)

    // 隐藏时间
    header.lastUpdatedTimeLabel.hidden = YES;
    // 隐藏状态
    header.stateLabel.hidden = YES;

    // 设置文字
    [header setTitle:@"Pull down to refresh" forState:MJRefreshStateIdle];
    [header setTitle:@"Release to refresh" forState:MJRefreshStatePulling];
    [header setTitle:@"Loading ..." forState:MJRefreshStateRefreshing];
    
    // 设置字体
    header.stateLabel.font = [UIFont systemFontOfSize:15];
    header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:14];

    // 设置颜色
    header.stateLabel.textColor = [UIColor redColor];
    header.lastUpdatedTimeLabel.textColor = [UIColor blueColor];

3.加载完毕,自定义加载完毕文字
footer的状态设置为endRefreshingWithNoMoreData

  [footer setTitle:@"No more data" forState:MJRefreshStateNoMoreData];

4.自定义图片动画
继承MJRefreshGifHeader|MJRefreshAutoGifFooter
重写方法- (void)prepare,设置不同状态下的刷新图片

- (void)prepare
{
    [super prepare];
    
    // 设置普通状态的动画图片
    NSMutableArray *idleImages = [NSMutableArray array];
    for (NSUInteger i = 1; i<=60; i++) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]];
        [idleImages addObject:image];
    }
     [self setImages:idleImages forState:MJRefreshStateIdle];
    
    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)
    NSMutableArray *refreshingImages = [NSMutableArray array];
    for (NSUInteger i = 1; i<=3; i++) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]];
        [refreshingImages addObject:image];
    }
    [self setImages:refreshingImages forState:MJRefreshStatePulling];
    
    // 设置正在刷新状态的动画图片
    [self setImages:refreshingImages forState:MJRefreshStateRefreshing];
}

5.自动上拉刷新
使用MJRefreshAutoFooter,automaticallyRefresh属性设置为YES(默认),triggerAutomaticallyRefreshPercent属性设置为负数,未滑动到底部就自动刷新

6.自定义刷新,加载UI
继承MJRefreshHeader| MJRefreshBackFooter(添加自自动回弹)(MJRefreshFooter)

  • (void)prepare添加UI
  • (void)placeSubviews设置子控件的位置和尺寸
    ….
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,280评论 19 139
  • 下拉刷新01-默认 self.tableView.header = [MJRefreshNormalHeader ...
    JACK_岩阅读 2,384评论 2 1
  • 下拉刷新01-默认 self.tableView.header = [MJRefreshNormalHeader ...
    Lewis海阅读 39,520评论 12 14
  • 下拉刷新01-默认 self.tableView.header = [MJRefreshNormalHeader ...
    seventhboy阅读 697评论 0 0
  • 岁月极美,在于它必然的流逝。春花,秋月,夏日,冬雪——三毛 夜色与行人交错出昏乱的光影,都是那样匆匆,偶然瞥...
    沙土之下阅读 207评论 0 0