刷新加载

2018-03-14  本文已影响4人  huicuihui

刷新设置:

self.tableView.mj_header = ({
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的refresh方法)
        MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refresh)];
        header.lastUpdatedTimeLabel.hidden = YES;
        header.stateLabel.hidden = YES;

            // 设置自动切换透明度(在导航栏下面自动隐藏)
            header.automaticallyChangeAlpha = YES;
            // 隐藏时间
            header.lastUpdatedTimeLabel.hidden = YES;
            // 设置刷新控件底部的背景色
           header.backgroundColor = kBackgroundUIColor;
            // 开始刷新,自动刷新
            [header beginRefreshing];

        header;
    });

上拉加载更多 设置:

            // 设置回调(一旦进入刷新状态就会调用这个refreshingBlock)
            self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
                [weakSelf fetchMore];
            }];
            self.tableView.mj_footer.backgroundColor = [UIColor whiteColor];
           // 马上进入刷新状态  很少使用
          //[self.tableView.mj_footer beginRefreshing];

tableview上拉加载更多页面跳动问题

问题研究:
将cell的高度固定

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return <#固定数值高度#>;
}

然后再向上滑动tableview就不会跳动了。可以确定一下原因是计算高度的问题。至少是有这个的原因。所以就从这里去优化页面。
通过打断点查看tableview代理方法执行顺序
先执行

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

后执行

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

最终的解决方法:
只需在创建tableview时添加下面三行代码即可:

    self.tableView.estimatedSectionFooterHeight = 0;
    self.tableView.estimatedRowHeight = 0;
    self.tableView.estimatedSectionHeaderHeight = 0;

自动加载更多

不用滑到底部了再手动的向上拉一下,才去加载更多。
再代理方法中实现加载更多的方法即可:

#pragma mark - 上拉加载更多
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{

//                if (<#正在加载中#>) {
//                    return;
//                }

    if (scrollView.contentOffset.y > scrollView.contentSize.height - scrollView.frame.size.height - 100) {
                [self.tableView.mj_footer beginRefreshing];
     //   [self fetchMore];
    }
}
上一篇 下一篇

猜你喜欢

热点阅读