iOS中Facebook開源動畫庫POP的簡單使用

2021-07-08 17:33:51 字數 2299 閱讀 2124

1.pop動畫引擎是facebook公司開源的

2.pop動畫引擎主要實現了真實物理系的動畫效果(彈簧效果與衰減效果)

3.pop動畫引擎的動畫效果非常流暢, 因為它使用了cadisplaylink來重新整理畫面(每秒60幀, 接近遊戲開發引擎)

4.pop動畫引擎自成體系, 與系統的coreanimation有著很大的區別, 但使用非常類似

#import "viewcontroller.h"

@inte***ce

viewcontroller ()

@property (nonatomic, strong) cadisplaylink *displaylink;

@property (nonatomic, assign) nsinteger count;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)displaylinkevent:(id)object

- (void)eventone

- (void)eventtwo

@end

1.使用pop動畫與使用calayer動畫非常相似

2.pop動畫的執行沒有中間狀態

3.pop動畫是對calayer動畫的補充, 但不能實現所有的calayer的動畫效果

4.pop動畫可以作用在任何物件上, 不僅僅是calayer

#import "viewcontroller.h"

#import

@inte***ce

viewcontroller ()

@property (nonatomic, strong) calayer *normallayer;

@property (nonatomic, strong) calayer *poplayer;

@end

@implementation

viewcontroller

- (void)viewdidload

#pragma mark --- 處理poplayer

- (void)accesspoplayer

- (void)removepopanimation

#pragma mark --- 處理normallayer

- (void)accessnormallayer

- (void)removenormalanimation

@end

我們對calayer動畫和pop動畫進行比較, 結果最後得出pop動畫要更加人性化, 更加好用.

1.衰減動畫由popdecayanimation來實現

2.需要精確計算停止運動瞬間的加速度才能夠用衰減動畫做出真實的效果

下面我們上**, 因為在工程裡我是用cocoapods匯入的pop庫, 所以如果你沒有安裝的話直接手動新增就好了

#import "viewcontroller.h"

#import

@inte***ce

viewcontroller ()

@property (nonatomic, strong) uibutton *button;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)hanlepangesture:(uipangesturerecognizer *)recognizer

}- (void)buttonevent:(uibutton *)button

執行後就能看到非常逼真的動畫衰減效果了

1.彈簧動畫由popspringanimation來實現

2.彈簧的質量速度時間等值都是可以設定的

下面上**, 還是一樣要先導入pop庫

#import "viewcontroller.h"

#import

@inte***ce

viewcontroller ()

@property (nonatomic, strong) uiview *showview;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)startspringanimation

@end

這裡只是測試了乙個屬性, 可以點進去看它其他的屬性, 就不一一演示了

Facebook開源FriendFeed的實時技術

tornado是乙個用python寫的相對簡單的 不設障礙的web伺服器架構,用以處理上萬的同時的連線口,讓實時的web服務通暢起來。雖然跟現在的一些用python寫的web架構相似,比如google的diango,但tornado更注重速度,能夠處理海量的同時發生的流量。taylor認為torna...

Facebook開源FriendFeed的實時技術

tornado是乙個用python寫的相對簡單的 不設障礙的web伺服器架構,用以處理上萬的同時的連線口,讓實時的web服務通暢起來。雖然跟現在的一些用python寫的web架構相似,比如google的diango,但tornado更注重速度,能夠處理海量的同時發生的流量。taylor認為torna...

Facebook開源Nuclide專案

作為全球最大的社交 facebook與 開源 關係密切。其開源專案負責人james pearce曾公開表示,facebook不僅起源於開源平台,也一直致力於建設乙個完整的開源 棧 環境。僅2014年,facebook就設立了107項開源專案,使其總的開源專案超過200個。通過開源專案的方式,face...