#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
