美文网首页
ios ~ 自定义MJRefresh上拉加载文字显示内容(例子)

ios ~ 自定义MJRefresh上拉加载文字显示内容(例子)

作者: 阳光下的叶子呵 | 来源:发表于2022-02-11 12:27 被阅读0次
1、这里使用的是:MJRefreshAutoNormalFooter
- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIEdgeInsets insets = UIEdgeInsetsMake(20, 0, 0, 0);
    if (@available(iOS 11.0, *)) {
        insets = [UIApplication sharedApplication].keyWindow.safeAreaInsets;
    }
    
    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0-insets.top, self.view.frame.size.width, self.view.frame.size.height + insets.top - kTabBarHeight) style:UITableViewStyleGrouped];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    [self.view addSubview:self.tableView];
    [self.tableView registerClass:[N2_HomeWordStudyCell class] forCellReuseIdentifier:NSStringFromClass([N2_HomeWordStudyCell class])];
    
    
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
//        [self gainWordLearnXStudyPlanList];
        [self gainWordLearningCircle];
        [self getHomeAdBannerStatus];
        [self gainWordLearnPlanDetailList];
    }];
//    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
//
//    }];
    /// 自定义 上拉加载提示文字
    MJRefreshAutoNormalFooter *footerRefresh = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadNewMJRefreshAction)];
    [footerRefresh setTitle:@"加载中..." forState:MJRefreshStateRefreshing];
    [footerRefresh setTitle:@"我是有底线的..." forState:MJRefreshStateNoMoreData];
    [footerRefresh setTitle:@"我是有底线的..." forState:MJRefreshStateIdle];
    footerRefresh.stateLabel.textColor = [UIColor grayColor];
    footerRefresh.stateLabel.font = [UIFont systemFontOfSize:[UIScreen mainScreen].bounds.size.width/375*12 weight:UIFontWeightRegular];
    // 设置刷新控件
    self.tableView.mj_footer = footerRefresh;

    [self.tableView.mj_header beginRefreshing];
}

- (void)loadNewMJRefreshAction {
    NSLog(@"上拉加载时。。。");
    // 方法:loadNewMJRefreshAction和下边这个block方法等同
//    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
//        NSLog(@"上拉加载。。。😁😆😆😆");
//    }];
    [self.tableView.mj_footer endRefreshing];
}
2、
//#MARK: 设置 tableView 刷新方式
/// 调用之前先设置好tableView / collectionView 的背景颜色
- (void)setupRefresh {
    __unsafe_unretained __typeof(self) weakSelf = self;
    // 设置回调(一旦进入刷新状态就会调用这个refreshingBlock)
    
    MJRefreshHeader *mjHeader = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [weakSelf loadDataWithHeader];
    }];
    
    MJRefreshAutoNormalFooter *mjAutoFooter = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        [weakSelf loadDataWithFooter];
    }];
    
    mjAutoFooter.triggerAutomaticallyRefreshPercent = 0.01;
    [mjAutoFooter setTitle:@"这是我们的底线了~" forState:MJRefreshStateNoMoreData];
    mjAutoFooter.stateLabel.font = [UIFont systemFontOfSize:14];
    mjAutoFooter.stateLabel.textColor = hexColor(#CAC7C7);
    
    if (self.collectionView) {
        self.collectionView.mj_header = mjHeader;
        self.collectionView.mj_footer = mjAutoFooter;
    } else if (self.tableView) {
        self.tableView.mj_header = mjHeader ;
        self.tableView.mj_footer = mjAutoFooter;
    }
    
    if (self.noRefreshAnimation) {
        [self loadDataWithHeader];
    } else {
        if (self.collectionView) {
            [self.collectionView.mj_header beginRefreshing];
        } else if (self.tableView) {
            [self.tableView.mj_header beginRefreshing];
        }
    }
}

/// 调用之前先设置好tableView / collectionView 的背景颜色
- (void)setupHeaderRefresh {
    __unsafe_unretained __typeof(self) weakSelf = self;
    // 设置回调(一旦进入刷新状态就会调用这个refreshingBlock)
    MJRefreshHeader *mjHeader = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [weakSelf loadDataWithHeader];
    }];
    
    if (self.tableView) {
        self.tableView.mj_header = mjHeader;
    }
    if (self.collectionView) {
        self.collectionView.mj_header = mjHeader;
    }
    if (self.noRefreshAnimation) {
        [self loadDataWithHeader];
    }else{
        if (self.tableView) {
            [self.tableView.mj_header beginRefreshing];
        }
        if (self.collectionView) {
            [self.collectionView.mj_header beginRefreshing];
        }
    }
}

/// 调用之前先设置好tableView / collectionView 的背景颜色
- (void)setupHeaderNoAutoRefresh {
    __unsafe_unretained __typeof(self) weakSelf = self;
    // 设置回调(一旦进入刷新状态就会调用这个refreshingBlock)
       MJRefreshHeader *mjHeader = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [weakSelf loadDataWithHeader];
    }];
    
    if (self.tableView) {
        self.tableView.mj_header = mjHeader;
    }
    if (self.collectionView) {
        self.collectionView.mj_header = mjHeader;
    }
}

//#MARK: 设置子视图
- (void)setupUI{
    
}
//#MARK: listView 下拉加载数据
- (void)loadDataWithHeader{
    
}
//#MARK: listView 上滑加载数据
- (void)loadDataWithFooter{
    
}

相关文章

网友评论

      本文标题:ios ~ 自定义MJRefresh上拉加载文字显示内容(例子)

      本文链接:https://www.haomeiwen.com/subject/gomakrtx.html