zoukankan      html  css  js  c++  java
  • How to use MJRefresh

    • Installation with CocoaPods:pod 'MJRefresh'
    • Manual import:
      • Drag All files in the MJRefresh folder to project
      • Import the main file:#import "MJRefresh.h"
    Base                        Custom
    MJRefresh.bundle            MJRefresh.h
    MJRefreshConst.h            MJRefreshConst.m
    UIScrollView+MJExtension.h  UIScrollView+MJExtension.m
    UIScrollView+MJRefresh.h    UIScrollView+MJRefresh.m
    UIView+MJExtension.h        UIView+MJExtension.m

    The Class Structure Chart of MJRefresh

    • The class of red text in the chart:You can use them directly
      • The drop-down refresh control types
        • Normal:MJRefreshNormalHeader
        • Gif:MJRefreshGifHeader
      • The pull to refresh control types
        • Auto refresh
          • Normal:MJRefreshAutoNormalFooter
          • Gif:MJRefreshAutoGifFooter
        • Auto Back
          • Normal:MJRefreshBackNormalFooter
          • Gif:MJRefreshBackGifFooter
    • The class of non-red text in the chart:For inheritance,to use DIY the control of refresh
    • About how to DIY the control of refresh,You can refer the Class in below Chart

    MJRefreshComponent.h

    /** The Base Class of refresh control */
    @interface MJRefreshComponent : UIView
    #pragma mark -  Control the state of Refresh 
    
    /** BeginRefreshing */
    - (void)beginRefreshing;
    /** EndRefreshing */
    - (void)endRefreshing; 
    /** IsRefreshing */
    - (BOOL)isRefreshing;
    
    #pragma mark - Other
    /** According to the drag ratio to change alpha automatically */
    @property (assign, nonatomic, getter=isAutomaticallyChangeAlpha) BOOL automaticallyChangeAlpha;
    @end

    MJRefreshHeader.h

    @interface MJRefreshHeader : MJRefreshComponent
    /** Creat header */
    + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock;
    /** Creat header */
    + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action;
    
    /** This key is used to storage the time that the last time of drown-down successfully */
    @property (copy, nonatomic) NSString *lastUpdatedTimeKey;
    /** The last time of drown-down successfully */
    @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime;
    
    /** Ignored scrollView contentInset top */
    @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop;
    @end

    MJRefreshFooter.h

    @interface MJRefreshFooter : MJRefreshComponent
    /** Creat footer */
    + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock;
    /** Creat footer */
    + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action;
    
    /** NoticeNoMoreData */
    - (void)noticeNoMoreData;
    /** ResetNoMoreData(Clear the status of NoMoreData ) */
    - (void)resetNoMoreData;
    
    /** Ignored scrollView contentInset bottom */
    @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom;
    
    /** Automaticlly show or hidden by the count of data(Show-have data,Hidden- no data) */
    @property (assign, nonatomic) BOOL automaticallyHidden;
    @end

    MJRefreshAutoFooter.h

    @interface MJRefreshAutoFooter : MJRefreshFooter
    /** Is Automatically Refresh(Default is Yes) */
    @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh;
    
    /** When there is much at the bottom of the control is automatically refresh(Default is 1.0,Is at the bottom of the control appears in full, will refresh automatically) */
    @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent;
    @end

    Reference

    * Due to there are more functions of this framework,Don't write specific text describe its usage
    * You can directly reference examples MJTableViewController、MJCollectionViewController、MJWebViewController,More intuitive and fast.

    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];

    (下拉刷新01-普通)

    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;

    (下拉刷新02-动画图片)

    The drop-down refresh 03-Hide the time

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

    (下拉刷新03-隐藏时间)

    The drop-down refresh 04-Hide status and time

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

    (下拉刷新04-隐藏状态和时间0)

    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];

    (下拉刷新05-自定义文字)

    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

    (下拉刷新06-自定义刷新控件)

    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)];

    (上拉刷新01-默认)

    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;

    (上拉刷新02-动画图片)

    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;

    (上拉刷新03-隐藏刷新状态的文字)

    The pull to refresh 04-All loaded

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

    (上拉刷新04-全部加载完毕)

    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];

    (上拉刷新05-自定义文字)

    The pull to refresh 06-Hidden After loaded

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

    (上拉刷新06-加载后隐藏)

    The pull to refresh 07-Automatic back of the pull01

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

    (上拉刷新07-自动回弹的上拉01)

    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;

    (上拉刷新07-自动回弹的上拉02)

    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

    (上拉刷新09-自定义刷新控件(自动刷新))

    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

    (上拉刷新10-自定义刷新控件(自动回弹))

    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
    }];

    (UICollectionView01-上下拉刷新)

    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
    }];

    (UICollectionView01-上下拉刷新)

    Remind

    • ARC
    • iOS>=6.0
    • iPhone iPad screen anyway
  • 相关阅读:
    【2017下长沙学院软工3班_助教博客】 第一次作业成绩公示
    《构建之法》读书笔记第3章
    《构建之法》读书笔记第1、2章
    【2017下集美大学软件工程1413软工实践_助教博客】 第0次作业成绩公示
    软件工程——构建之法高分Tips
    第09组 Alpha冲刺(1/6)
    2019 SDN上机第2次作业
    第09组 团队Git现场编程实战
    2019 SDN上机第一次作业
    第09组 团队项目-需求分析报告
  • 原文地址:https://www.cnblogs.com/ming1025/p/6084806.html
Copyright © 2011-2022 走看看