当前位置:   article > 正文

[iOS]MJRefresh刷新_mjrefreshautonormalfooter

mjrefreshautonormalfooter

TO:
MJRefresh
MJRefresh超详细讲解

全局刷新提示可以去Localizable.strings设置,若部分页面部分状态需要展示不同的提示,需要单独进行处理。
调用endRefreshingWithNoMoreData时,有些情况下"已经全部加载完毕"左边多展示了箭头切片。

  1. #import "GARefreshViewController.h"
  2. #import "MJRefresh.h"
  3. @interface GARefreshViewController () <UITableViewDelegate, UITableViewDataSource>
  4. @property (weak, nonatomic) IBOutlet UITableView *tableView;
  5. @property (assign, nonatomic) NSInteger page;
  6. @property (strong, nonatomic) NSMutableArray *dataMArr;
  7. @end
  8. @implementation GARefreshViewController
  9. - (void)viewDidLoad {
  10. [super viewDidLoad];
  11. self.title = @"列表刷新";
  12. _tableView.separatorStyle = NO;
  13. [_tableView setSeparatorStyle:NO];
  14. _tableView.estimatedRowHeight = 100;
  15. _tableView.rowHeight = UITableViewAutomaticDimension;
  16. // _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refresh)];
  17. _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
  18. [self refresh];
  19. }];
  20. /*
  21. MJRefreshAutoNormalFooter 上拉加载更多时,拖动到刷新位置自动刷新。
  22. MJRefreshBackNormalFooter 上拉加载更多时,拖动到刷新位置时需要松手才会刷新。
  23. 其中MJRefreshBackNormalFooter调用endRefreshingWithNoMoreData设置没有更多数据时,会多展示一个向上的箭头,故需要手动设置mj_footer.state = MJRefreshStateNoMoreData。
  24. */
  25. _tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
  26. [self refreshMore];
  27. }];
  28. /*
  29. 刷新控件的状态:
  30. typedef NS_ENUM(NSInteger, MJRefreshState) {
  31. // 普通闲置状态
  32. MJRefreshStateIdle = 1,
  33. // 松开就可以进行刷新的状态
  34. MJRefreshStatePulling,
  35. // 正在刷新中的状态
  36. MJRefreshStateRefreshing,
  37. // 即将刷新的状态
  38. MJRefreshStateWillRefresh,
  39. // 所有数据加载完毕,没有更多的数据了
  40. MJRefreshStateNoMoreData
  41. };
  42. */
  43. // 若需要改变部分页面下某些状态的刷新文字,可以如下处理。
  44. MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
  45. [self refresh];
  46. }];
  47. [header setTitle:@"拉一拉~" forState:MJRefreshStateIdle];
  48. _tableView.mj_header = header;
  49. MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
  50. [self refreshMore];
  51. }];
  52. [footer setTitle:@"到底了~" forState:MJRefreshStateNoMoreData];
  53. _tableView.mj_footer = footer;
  54. [self refresh];
  55. }
  56. - (void)refresh {
  57. _page = 1;
  58. if (!_dataMArr) {
  59. _dataMArr = [NSMutableArray new];
  60. }
  61. [_dataMArr removeAllObjects];
  62. [self requestGoodsListNet];
  63. }
  64. - (void)refreshMore {
  65. _page ++;
  66. [self requestGoodsListNet];
  67. }
  68. - (void)requestGoodsListNet {
  69. [_tableView.mj_header endRefreshing];
  70. [_tableView.mj_footer endRefreshing];
  71. for (int i = 0 ; i < 20; i ++) {
  72. if (_page == 3) {
  73. [_tableView.mj_footer endRefreshingWithNoMoreData];
  74. _tableView.mj_footer.state = MJRefreshStateNoMoreData;
  75. break;
  76. }
  77. NSString *tempGoodsName = [NSString stringWithFormat:@"商品名称%ld",i + (_page-1)*20];
  78. [_dataMArr addObject:tempGoodsName];
  79. }
  80. [_tableView reloadData];
  81. }
  82. #pragma mark - UITableViewDataSource
  83. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  84. return 1;
  85. }
  86. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  87. return _dataMArr.count;
  88. }
  89. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  90. NSString *identifier= @"cell";
  91. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
  92. if (cell == nil) {
  93. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
  94. }
  95. cell.textLabel.text = _dataMArr[indexPath.row];
  96. return cell;
  97. }
  98. @end

示意图:
加载完成后多展示了箭头

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/229278
推荐阅读
  

闽ICP备14008679号