[iOS]MJRefresh刷新

[iOS]MJRefresh刷新TO MJRefreshMJR 超详细讲解全局刷新提示可以去 Localizable strings 设置 若部分页面部分状态需要展示不同的提示 需要单独进行处理 调用 endRefreshin 时 有些情况下 已经全部加载完毕 左边多展示了箭头切片 import GARefreshVie h import MJRefres

#import "GARefreshViewController.h" #import "MJRefresh.h" @interface GARefreshViewController () 
  
    @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 
  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202211.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:38
下一篇 2026年3月20日 上午7:38


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号