天天看點

Facebok的動畫架構pop

該開源架構比蘋果的Core Animation功能更強大,我強烈推薦該動畫架構。

Facebook Paper 官網:​​https://www.facebook.com/paper​​

Facebook Pop 源碼:​​​https://github.com/facebook/pop​​​。

在計算機的世界裡面,其實并不存在絕對連續的動畫,你所看到的螢幕上的動畫本質上都是離散的,隻是在一秒的時間裡面離散的幀多到一定的數量人眼就覺得是連續的了,在iOS中,最大的幀率是60幀每秒。 iOS提供了Core Animation架構,隻需要開發者提供關鍵幀資訊,比如提供某個animatable屬性終點的關鍵幀資訊,然後中間的值則通過一定的算法進行插值計算,進而實作補間動畫。 Core Aniamtion中進行插值計算所依賴的時間曲線由CAMediaTimingFunction提供。 Pop Animation在使用上和Core Animation很相似,都涉及Animation對象以及Animation的載體的概念,不同的是Core Animation的載體隻能是CALayer,而Pop Animation可以是任意基于NSObject的對象,包括限制。當然大多數情況Animation都是界面上顯示的可視的效果,是以動畫執行的載體一般都直接或者間接是UIView或者CALayer。

Facebook Pop其實是基于CADisplayLink(Mac平台上使用的CVDisplayLink)實作的獨立于Core Animation之外的動畫方案。