[iOS] 下拉刷新与上拉加载 - MJRefresh第三方

开源第三方地址:https://github.com/CoderMJLee/MJRefresh

默认上下拉 举例
// 分别调用方法。也可以用block..
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:selfrefreshingAction:@selector(headRefresh)];   

MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter
footerWithRefreshingTarget:selfrefreshingAction:@selector(footRefresh)];

self.tabeleView.mj_header= header;
self.tabeleView.mj_footer= footer;    

[self.tabeleView.mj_headerbeginRefreshing];

一种下拉与两种上拉

-1.1 一般菊花下拉
MJRefreshNormalHeader

-1.2 添加动画下拉
MJRefreshGifHeader

-2.1 点击或自动加载菊花上拉
MJRefreshAutoNormalFooter

-2.2 点击或自动加载动画上拉
MJRefreshAutoGifFooter-3.1 

反向菊花上拉
MJRefreshBackNormalFooter-3.2 

反向动画上拉
MJRefreshBackGifFooter

基础属性与方法
/** 进入刷新状态 */
- (void)beginRefreshing;

/** 结束刷新状态 *
/- (void)endRefreshing;

/** 是否正在刷新 */
- (BOOL)isRefreshing;

/** 根据拖拽比例自动切换透明度 */
@property(assign,nonatomic, getter=isAutomaticallyChangeAlpha)BOOLautomaticallyChangeAlpha;

提示文字与时间
所有 header 都可以设置提示文字,下拉可以设置刷新时间
一般使用 3 个状态:MJRefreshStateIdle,MJRefreshStatePulling,MJRefreshStateRefreshing

// 提示文字提供 label 自定义,并有方法设置不同状态下的显示内容    
header.stateLabel.hidden = YES;        
[headersetTitle:@"再下拉一点就能刷新了"forState:MJRefreshStateIdle];    
[headersetTitle:@"放开即刷新"forState:MJRefreshStatePulling];    
[headersetTitle:@"Loading ..."forState:MJRefreshStateRefreshing];

// 更新时间提供 label 自定义,header.lastUpdatedTimeLabel.hidden = YES;
加载动画
所有 gif header 都可以设置图片数组。
一般使用 3 个状态:MJRefreshStateIdle,MJRefreshStatePulling,MJRefreshStateRefreshing

// 设置不同状态下的图片数组
[gifHeadersetImages:arr1forState:MJRefreshStateIdle];

// 一张就够了
[gifHeadersetImages:arr2forState:MJRefreshStatePulling];    [gifHeadersetImages:arr3forState:MJRefreshStateRefreshing];

推荐阅读更多精彩内容