赞
踩
下面的代码:刷新方法,是无缝刷新,无须手动再次拖拽才进行数据加载,只要到了数据位置,即自动刷新
1、声明页码属性
- /** 当前页码 */
- @property (nonatomic, assign) NSInteger page;
2、注册tableview刷新方法
- /**
- * 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;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。