iOS第三方框架使用

MJRefresh普通使用

2016-08-25  本文已影响3265人  郑州程序员王一

1、声明页码属性

/** 当前页码 */
@property (nonatomic, assign) NSInteger page;

2、刷新方法

/**
 *  tableView刷新方法
 */
-(void)setupTableViewRefresh{
    //刷新头部
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadTableViewNewData)];
    //改变透明度
    self.tableView.mj_header.automaticallyChangeAlpha = YES;
    //进来就开始刷新
    [self.tableView.mj_header beginRefreshing];
    //刷新尾部
    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadTableViewMoreData)];
    //防止网络慢的时候,显示脚部刷新,进入隐藏
    self.tableView.mj_footer.hidden = YES;
}

3、下拉刷新

/**
 * 加载新的帖子数据
 */
-(void)loadTableViewNewData{
    
    // 结束上拉
    [self.tableView.mj_footer endRefreshing];
    //page初始值
    self.page = 0;
    
    //参数
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"p"] = @(self.page);
    params[@"psize"] = @(15);
    
    // 发送请求
    [[BM_NetAPIManager sharedManager] rb_requestComment_WithParams:params andBlock:^(id responseData, NSError *error) {
        if (responseData)
        {
            if ([responseData[@"status"] intValue] == 1)
            {
                [self.topics removeAllObjects];
                self.topics = [RBHotCommentModel mj_objectArrayWithKeyValuesArray:responseData[@"data"]];
                // 刷新表格
                [self.tableView reloadData];

                /**  如果服务器返回了总数量,这段就不需要了,使用第5条写法
                //判断首次加载数据是否小于服务器返回数量
                if (self.topics.count < 15) {
                    //结束刷新
                    [self.tableView.mj_header endRefreshing];
                    self.tableView.mj_footer.hidden = NO;
                    [self.tableView.mj_footer endRefreshingWithNoMoreData];
                    return ;
                }
                 */
                //结束刷新
                self.page++;
            }
            else
            {
                //没有获取到数据
                [self.tableView.mj_header endRefreshing];
                self.tableView.mj_footer.hidden = NO;
                [self.tableView.mj_footer endRefreshingWithNoMoreData];
                return ;
            }
        }
        else
        {
            
        }
        //结束刷新
        [self.tableView.mj_header endRefreshing];
        self.tableView.mj_footer.hidden = NO;
    }];
}

4、上拉刷新

/**
 * 加载更多的帖子数据
 */
- (void)loadTableViewMoreData{
    
    // 结束上拉
    [self.tableView.mj_header endRefreshing];
    
    // 参数
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"p"] = @(self.page);
    params[@"psize"] = @(15);
    
    // 发送请求
    [[BM_NetAPIManager sharedManager] rb_requestComment_WithParams:params andBlock:^(id responseData, NSError *error) {
        if (responseData)
        {
            if ([responseData[@"status"] intValue] == 1)
            {
                // 字典 -> 模型
                NSArray *newTopics = [RBHotCommentModel mj_objectArrayWithKeyValuesArray:responseData[@"data"]];
                    //将新数据添加到 后面
                    [self.topics addObjectsFromArray:newTopics];
                    // 刷新表格
                    [self.tableView reloadData];
                
               /**  如果服务器返回了总数量,这段就不需要了,使用第5条写法
                //如果下拉数据小于服务器返回数量,停止下拉刷新
                if (newTopics.count < 15) {
                    [self.tableView.mj_footer endRefreshing];
                    [self.tableView.mj_footer endRefreshingWithNoMoreData];
                    return ;
                }
                */
                self.page++;
            }
            else
            {
                
            }
        }
        else
        {
            
        }
        //结束刷新
        [self.tableView.mj_footer endRefreshing];
    }];
}

5: 如果服务器返回来了总数量,刷新判断就好说了

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    //刷新数据处理
    self.tableView.mj_footer.hidden = (self.dataArray.count == 0);
    if (self.dataArray.count == self.totalCount) {
        [self.tableView.mj_footer endRefreshingWithNoMoreData];
    }else{
        [self.tableView.mj_footer endRefreshing];
    }
    return self.dataArray.count;
}

勤学如早春之苗,不见其增,日有所涨。
辍学如磨刀之石,不见其减,日有所损。

上一篇下一篇

猜你喜欢

热点阅读