MJRefresh 刷新使用后面6个子类
头部刷新:
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