900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > [iOS]MJRefresh刷新

[iOS]MJRefresh刷新

时间:2024-04-16 09:38:33

相关推荐

[iOS]MJRefresh刷新

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

示意图:

加载完成后多展示了箭头

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。