下拉重新整理物件refreshobject
1. 分離了動畫實現與重新整理邏輯
2. 你可以根據自己的需要,設計自己的動畫效果,你的動畫只需要繼承協議,實現協議裡面的方法即可
3. 本設計方案是用的元件方式,**復用率很高,靈活性很強原始碼
////tableviewrefresh
////
created by youxianming on 15/6/25.
////
#import
@protocol refreshobjectanimationprotocal @required
- (void
)animationwithpercent:(cgfloat)percent;
- (void
)startrefreshanimation;
- (void
)endrefreshanimation;
@end
////uiscrollview
////
created by youxianming on 15/6/24.
////
#import
#import
@class
refreshobject;
typedef
enum
: nsuinteger erefreshstate;
@protocol refreshobjectdelegate @required/**
* 開始重新整理
* * @param refreshobject */
- (void)startrefreshing:(refreshobject *)refreshobject;/**
* 結束重新整理
* * @param refreshobject */
- (void)endrefresh:(refreshobject *)refreshobject;
- (void)moving:(refreshobject *)refreshobject offset:(cgfloat)offset percent:(cgfloat)percent;
@end
@inte***ce
refreshobject : nsobject/**
* ** */
@property (nonatomic, weak)
iddelegate;/*
* * 當前狀態 */
@property (nonatomic,
readonly
) erefreshstate state;
@property (nonatomic) cgfloat height;
@property (nonatomic, weak) uiscrollview *scrollview;/**
* === 子類可以重寫該方法實現新的重新整理效果 ===
* * 開始重新整理 */
- (void
)beginrefreshing;/**
* === 子類可以重寫該方法實現新的重新整理效果 ===
* * 結束重新整理 */
- (void
)endrefresh;
@end
////uiscrollview
////
created by youxianming on 15/6/24.
////
#import
"refreshobject.h
"@inte***ce
refreshobject ()
@end
@implementation
refreshobject
- (void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary *)change context:(void *)context
[_delegate moving:self offset:currentpostion percent:percent];}}
} else
}}- (void
)beginrefreshing
[uiview animatewithduration:
0.3 animations:^ completion:^(bool finished) ];
}}- (void
)endrefresh
[uiview animatewithduration:
0.3f animations:^ completion:^(bool finished) ];
}@end
////uiscrollview+refreshobject.h
//uiscrollview
////
created by youxianming on 15/6/24.
////
#import
#import
"refreshobject.h
"@inte***ce
uiscrollview (refreshobject)/**
* 需要主動賦值 */
@property (nonatomic, strong) refreshobject *refreshobject;/**
* 新增觀察者 */
- (void
)addobserver;/**
* 移除觀察者 */
- (void
)removeobserver;
@end
//細節//uiscrollview+refreshobject.m
//uiscrollview
////
created by youxianming on 15/6/24.
////
#import
"uiscrollview+refreshobject.h
"#import
@implementation
uiscrollview (refreshobject)
#pragma mark - 新增屬性@dynamic refreshobject;
nsstring * const _recognizerrefreshobject = @"
recognizerrefreshobject";
- (void)setrefreshobject:(refreshobject *)refreshobject
- (refreshobject *)refreshobject
#pragma mark -
- (void
)addobserver
}- (void
)removeobserver
}@end
繼承協議 refreshobjectanimationprotocal 並實現協議方法即可,使用的話,如下所示
下拉重新整理 WEUI下拉重新整理
最近在做手機版使用到了下拉重新整理和滾動載入,記錄一下實現過程 一 引入檔案12 34 二 頁面布局12 3456 78910 1112 1314 1516 1718 19 下拉重新整理 釋放重新整理 正在重新整理 正在載入 三 js部分12 3456 78910 1112 1314 1516 17...
Android 下拉重新整理,非常強大的下拉重新整理功能
android下拉重新整理各式各樣,今天介紹兩種常見的 第一種下拉重新整理就是android自帶api v4包下面的 android support.v4.widget.swiperefreshlayout 只要將要重新整理的控制項放到swiperefreshlayout 裡面 比如 android...
IOS UITableView下拉重新整理
給 uitableview 新增 下拉重新整理 pull refresh 屬性 親愛的,我還是有些不忍心,不過事情的經過是這樣的 cocoa touch 的 官方 sdk 裡,壓根就沒實現這個 pull refresh 的功能。恩,這事真不是賈伯斯手下幹的。然而也不是麻匪幹的。是他幹的,enorme...