欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS-加载数据的实现-MJRefresh

程序员文章站 2022-07-07 23:22:46
使用CocoaPods加载三方库: MJRefresh类结构图: 具体实现方法和效果图: The drop-down refresh 01-Default self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingBlock ......

使用CocoaPods加载三方库:

pod 'MJRefresh'

 

MJRefresh类结构图:

iOS-加载数据的实现-MJRefresh


iOS-加载数据的实现-MJRefresh

 

具体实现方法和效果图:

  • The drop-down refresh 01-Default

    self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
       //Call this Block When enter the refresh status automatically 
    }];
    或
    // Set the callback(Once you enter the refresh status,then call the action of target,that is call [self loadNewData])
    self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
    
    // Enter the refresh status immediately
    [self.tableView.header beginRefreshing];

    iOS-加载数据的实现-MJRefresh

  • The drop-down refresh 02-Animation image

    // Set the callback(一Once you enter the refresh status,then call the action of target,that is call [self loadNewData])
    MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
    // Set the ordinary state of animated images
    [header setImages:idleImages forState:MJRefreshStateIdle];
    // Set the pulling state of animated images(Enter the status of refreshing as soon as loosen)
    [header setImages:pullingImages forState:MJRefreshStatePulling];
    // Set the refreshing state of animated images
    [header setImages:refreshingImages forState:MJRefreshStateRefreshing];
    // Set header
    self.tableView.mj_header = header;

    iOS-加载数据的实现-MJRefresh

  • The drop-down refresh 03-Hide the time

    // Hide the time
    header.lastUpdatedTimeLabel.hidden = YES;

    iOS-加载数据的实现-MJRefresh

  • The drop-down refresh 04-Hide status and time

    // Hide the time
    header.lastUpdatedTimeLabel.hidden = YES;
    
    // Hide the status
    header.stateLabel.hidden = YES;

    iOS-加载数据的实现-MJRefresh

  • The drop-down refresh 05-DIY title

    // Set title
    [header setTitle:@"Pull down to refresh" forState:MJRefreshStateIdle];
    [header setTitle:@"Release to refresh" forState:MJRefreshStatePulling];
    [header setTitle:@"Loading ..." forState:MJRefreshStateRefreshing];
    
    // Set font
    header.stateLabel.font = [UIFont systemFontOfSize:15];
    header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:14];
    
    // Set textColor
    header.stateLabel.textColor = [UIColor redColor];
    header.lastUpdatedTimeLabel.textColor = [UIColor blueColor];

    iOS-加载数据的实现-MJRefresh

  • The drop-down refresh 06-DIY the control of refresh

    self.tableView.mj_header = [MJDIYHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
    // Implementation reference to MJDIYHeader.h和MJDIYHeader.m

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 01-Default

    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        //Call this Block When enter the refresh status automatically
    }];
    或
    // Set the callback(Once you enter the refresh status,then call the action of target,that is call [self loadMoreData])
    self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 02-Animation image

    // Set the callback(Once you enter the refresh status,then call the action of target,that is call [self loadMoreData])
    MJRefreshAutoGifFooter *footer = [MJRefreshAutoGifFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
    
    // Set the refresh image
    [footer setImages:refreshingImages forState:MJRefreshStateRefreshing];
    
    // Set footer
    self.tableView.mj_footer = footer;

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 03-Hide the title of refresh status

    // Hide the title of refresh status
    footer.refreshingTitleHidden = YES;
    // If does have not above method,then use footer.stateLabel.hidden = YES;

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 04-All loaded

    //Become the status of NoMoreData
    [footer noticeNoMoreData];

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 05-DIY title

    // Set title
    [footer setTitle:@"Click or drag up to refresh" forState:MJRefreshStateIdle];
    [footer setTitle:@"Loading more ..." forState:MJRefreshStateRefreshing];
    [footer setTitle:@"No more data" forState:MJRefreshStateNoMoreData];
    
    // Set font
    footer.stateLabel.font = [UIFont systemFontOfSize:17];
    
    // Set textColor
    footer.stateLabel.textColor = [UIColor blueColor];

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 06-Hidden After loaded

    //Hidden current control of the pull to refresh
    self.tableView.mj_footer.hidden = YES;

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 07-Automatic back of the pull01

    self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 08-Automatic back of the pull02

    MJRefreshBackGifFooter *footer = [MJRefreshBackGifFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
    
    // Set the normal state of the animated image
    [footer setImages:idleImages forState:MJRefreshStateIdle];
    //  Set the pulling state of animated images(Enter the status of refreshing as soon as loosen)
    [footer setImages:pullingImages forState:MJRefreshStatePulling];
    // Set the refreshing state of animated images
    [footer setImages:refreshingImages forState:MJRefreshStateRefreshing];
    
    // Set footer
    self.tableView.mj_footer = footer;

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 09-DIY the control of refresh(Automatic refresh)

    self.tableView.mj_footer = [MJDIYAutoFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
    // Implementation reference to MJDIYAutoFooter.h和MJDIYAutoFooter.m

    iOS-加载数据的实现-MJRefresh

  • The pull to refresh 10-DIY the control of refresh(Automatic back)

    self.tableView.mj_footer = [MJDIYBackFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
    // Implementation reference to MJDIYBackFooter.h和MJDIYBackFooter.m

    iOS-加载数据的实现-MJRefresh

  • UICollectionView01-The pull and drop-down refresh

    // The drop-down refresh
    self.collectionView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
       //Call this Block When enter the refresh status automatically 
    }];
    
    // The pull to refresh
    self.collectionView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
       //Call this Block When enter the refresh status automatically
    }];

    iOS-加载数据的实现-MJRefresh

  • UIWebView01-The drop-down refresh

    //Add the control of The drop-down refresh
    self.webView.scrollView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
       //Call this Block When enter the refresh status automatically
    }];

    iOS-加载数据的实现-MJRefresh

文章来源:https://github.com/CoderMJLee/MJRefresh