-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Open
Labels
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