-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Open
Labels
@gongsunqingyang
Description
同类型的issue#1507
#import "RefreshViewController.h" #import <MJRefresh.h> @interface RefreshViewController () <UITableViewDataSource, UITableViewDelegate> @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSMutableArray *array; @end @implementation RefreshViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; __weak typeof(self) weakSelf = self; UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; tableView.delegate = self; tableView.dataSource = self; tableView.rowHeight = 150; tableView.sectionHeaderHeight = 100; tableView.sectionFooterHeight = 0.01; if (@available(iOS 15.0, *)) { tableView.sectionHeaderTopPadding = 0.0; } tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ [weakSelf pullDownRequest]; }]; tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ [weakSelf pullUpRequest]; }]; [self.view addSubview:tableView]; self.tableView = tableView; [self pullDownRequest]; } - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; self.tableView.frame = CGRectMake(0, 64, self.view.bounds.size.width, self.view.bounds.size.height - 64); } /// 下拉 - (void)pullDownRequest { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ self.array = [NSMutableArray arrayWithObjects:@1, @1, @1, @1, nil]; [self.tableView.mj_header endRefreshing]; [self.tableView reloadData]; }); } /// 上拉 - (void)pullUpRequest { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.array addObjectsFromArray:@[@(1)]]; [self.tableView.mj_footer endRefreshing]; [self.tableView reloadData]; }); } #pragma mark - UITableViewDataSource - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.array.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"]; } cell.textLabel.text = [NSString stringWithFormat:@"index %@", @(indexPath.row)]; cell.backgroundColor = [UIColor clearColor]; return cell; } #pragma mark - UITableViewDelegate - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UILabel *label = [[UILabel alloc] init]; label.text = @"ScetionHeader"; label.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5]; return label; } @end