下拉重新整理物件RefreshObject

2021-09-07 00:08:26 字數 3932 閱讀 4915

下拉重新整理物件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...