开源第三方地址: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];