码迷,mamicode.com
首页 > 移动开发 > 详细

iOS MJRefresh下拉刷新 上拉加载(可添加gif图版) 小结

时间:2015-07-09 16:08:29      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:mjrefresh   下拉刷新   上拉加载   添加gif图   

1.首先去github上下载最新版 MJ刷新库 下载MJ链接



2.tableVIew中加入相关代码

     _tableView = [[UITableView allocinitWithFrame:CGRectMake(00MCAPPWidthMCAPPHeight - 64)];

    _tableView.backgroundColor = myClearColor;

    _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    _tableView.delegate = self;

    _tableView.dataSource = self;

    _tableView.showsVerticalScrollIndicator = NO;

    _tableView.scrollsToTop = YES;

    [self.view addSubview:_tableView];

    [_tableView addGifHeaderWithRefreshingTarget:self refreshingAction:@selector(loadData)];

    [_tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

    [self gif];


    //loadData 为你下拉刷新时请求网络数据的方法  loadMoreData为你上拉加载时请求网络数据的方法



3. [self gif]

- (void)gif

{

    NSMutableArray *idleImages = [NSMutableArray array];

    //这块为你刷新时出现的gif图 需要循环添加到数组中

    for (NSUInteger i = 1; i <= 5; i++) {

        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"img_loading-%lu.png", (unsigned long)i]];

        [idleImages addObject:image];

    }

    [_tableView.gifHeader setImages:idleImages forState:MJRefreshHeaderStateIdle];

    _tableView.gifFooter.refreshingImages = idleImages;

    _tableView.gifHeader.updatedTimeHidden = YES;

    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)

    NSMutableArray *refreshingImages = [NSMutableArray array];

    for (NSUInteger i = 1; i <= 5; i++) {

        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"img_loading-%lu.png", (unsigned long)i]];

        [refreshingImages addObject:image];

    }

    [_tableView.gifHeader setImages:refreshingImages forState:MJRefreshHeaderStatePulling];

}



4. 自定义刷新时顶部底部出现的Label和gif图的frame
这里举footer的例子


MJRefreshGifFooter.m

- (void)layoutSubviews

{

    [super layoutSubviews];

    // 指示器 gif图的frame

   self.gifView.frame = CGRectMake(self.bounds.origin.x + 20self.bounds.origin.y + 15self.bounds.size.width / 2self.bounds.size.height / 2);

    if (self.stateHidden) {

        self.gifView.contentMode = UIViewContentModeCenter;

    } else {

        self.gifView.contentMode = UIViewContentModeScaleAspectFit;

        self.gifView.mj_w = self.mj_w * 0.5 - 90;

    }

}

MJRefreshFooter.m

- (void)layoutSubviews

{

    [super layoutSubviews];

    self.loadMoreButton.frame = self.bounds;

    self.loadMoreButton.hidden = YES;

   //Label的frame

    self.stateLabel.frame = CGRectMake(self.bounds.origin.xself.bounds.origin.y + 15self.bounds.size.widthself.bounds.size.height / 2);

    self.noMoreLabel.frame = self.bounds;

}


同理header的gif图frame 和Labelframe 都在相应的类里的方法里 都可以根据需求去修改


更多的设置可以看下MJ在github上相关的文档。




版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS MJRefresh下拉刷新 上拉加载(可添加gif图版) 小结

标签:mjrefresh   下拉刷新   上拉加载   添加gif图   

原文地址:http://blog.csdn.net/liuxu0718/article/details/46817655

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!