赞
踩
TO:
MJRefresh
MJRefresh超详细讲解
全局刷新提示可以去Localizable.strings设置,若部分页面部分状态需要展示不同的提示,需要单独进行处理。
调用endRefreshingWithNoMoreData时,有些情况下"已经全部加载完毕"左边多展示了箭头切片。
- #import "GARefreshViewController.h"
- #import "MJRefresh.h"
-
- @interface GARefreshViewController () <UITableViewDelegate, UITableViewDataSource>
-
- @property (weak, nonatomic) IBOutlet UITableView *tableView;
- @property (assign, nonatomic) NSInteger page;
- @property (strong, nonatomic) NSMutableArray *dataMArr;
-
- @end
-
- @implementation GARefreshViewController
-
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.title = @"列表刷新";
- _tableView.separatorStyle = NO;
- [_tableView setSeparatorStyle:NO];
- _tableView.estimatedRowHeight = 100;
- _tableView.rowHeight = UITableViewAutomaticDimension;
-
- // _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refresh)];
- _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
- [self refresh];
- }];
-
- /*
- MJRefreshAutoNormalFooter 上拉加载更多时,拖动到刷新位置自动刷新。
- MJRefreshBackNormalFooter 上拉加载更多时,拖动到刷新位置时需要松手才会刷新。
- 其中MJRefreshBackNormalFooter调用endRefreshingWithNoMoreData设置没有更多数据时,会多展示一个向上的箭头,故需要手动设置mj_footer.state = MJRefreshStateNoMoreData。
- */
- _tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
- [self refreshMore];
- }];
-
- /*
- 刷新控件的状态:
- typedef NS_ENUM(NSInteger, MJRefreshState) {
- // 普通闲置状态
- MJRefreshStateIdle = 1,
- // 松开就可以进行刷新的状态
- MJRefreshStatePulling,
- // 正在刷新中的状态
- MJRefreshStateRefreshing,
- // 即将刷新的状态
- MJRefreshStateWillRefresh,
- // 所有数据加载完毕,没有更多的数据了
- MJRefreshStateNoMoreData
- };
- */
- // 若需要改变部分页面下某些状态的刷新文字,可以如下处理。
- MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
- [self refresh];
- }];
- [header setTitle:@"拉一拉~" forState:MJRefreshStateIdle];
- _tableView.mj_header = header;
-
- MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
- [self refreshMore];
- }];
- [footer setTitle:@"到底了~" forState:MJRefreshStateNoMoreData];
- _tableView.mj_footer = footer;
-
- [self refresh];
- }
-
- - (void)refresh {
- _page = 1;
- if (!_dataMArr) {
- _dataMArr = [NSMutableArray new];
- }
- [_dataMArr removeAllObjects];
- [self requestGoodsListNet];
- }
-
- - (void)refreshMore {
- _page ++;
- [self requestGoodsListNet];
- }
-
- - (void)requestGoodsListNet {
- [_tableView.mj_header endRefreshing];
- [_tableView.mj_footer endRefreshing];
-
- for (int i = 0 ; i < 20; i ++) {
- if (_page == 3) {
- [_tableView.mj_footer endRefreshingWithNoMoreData];
- _tableView.mj_footer.state = MJRefreshStateNoMoreData;
- break;
- }
- NSString *tempGoodsName = [NSString stringWithFormat:@"商品名称%ld",i + (_page-1)*20];
- [_dataMArr addObject:tempGoodsName];
- }
-
- [_tableView reloadData];
- }
-
- #pragma mark - UITableViewDataSource
-
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
- }
-
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- return _dataMArr.count;
- }
-
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- NSString *identifier= @"cell";
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
- if (cell == nil) {
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
- }
- cell.textLabel.text = _dataMArr[indexPath.row];
- return cell;
- }
-
- @end
示意图:
加载完成后多展示了箭头
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。