MJRefresh

MJRefresh 刷新使用后面6个子类

MJRefresh_第1张图片
Paste_Image.png

头部刷新:

1)self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        //当用户下拉着刷新时,会进入此方法,在这里可以请求数据
    }];

2)self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(test)];

第一进入页面自动进入刷新

[self.tableView.mj_header beginRefreshing];

结束刷新

[self.tableView.mj_header endRefreshing];

如果顶导是半透明的可以开启自动改变透明度,不然回退,回发现header不隐藏

self.tableView.mj_header.automaticallyChangeAlpha = YES;

底部刷新:

 1)self.tableView.mj_footer = [MJRefreshFooter footerWithRefreshingBlock:^{
        //下拉
    }];
2)self.tableView.mj_footer  = [MJRefreshFooter footerWithRefreshingTarget:self refreshingAction:@selector(test)];

隐藏footer

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //根据数量显示或者隐藏footer
    self.tableView.mj_footer.height = (self.arr.count == 0);
}

结束刷新的两种方式

1)[self.tableView.mj_footer endRefreshingWithNoMoreData];
//会提示已经没有数据  再次上拉不会再调用数据请求
2)[self.tableView.mj_footer endRefreshing];
 if (判断条件) {
        [self.tableView.mj_footer endRefreshingWithNoMoreData];
//
    }else
    {
        [self.tableView.mj_footer endRefreshing];
    }

实现原理:

通过kvo监听scrollView的contentoffset

你可能感兴趣的:(MJRefresh)