概述
Pop是一個動畫引擎,用以擴(kuò)展iOS咆畏、OSX的動畫類型。相較于iOS、OSX中的基本動畫效果践宴,Pop擴(kuò)展后支持彈簧動畫效果與衰減動畫效果,你可以用Pop動畫引擎來構(gòu)建出真實的物理交互效果雁社。它的API與Core Animation的API非常類似浴井,使用起來非常容易。Pop動畫引擎已經(jīng)經(jīng)過了良好的測試霉撵,F(xiàn)acebook在 Paper 應(yīng)用中進(jìn)行了大量使用磺浙。
安裝
Pop支持 CocoaPods 安裝,將下面一行代碼添加到你的項目中的 Podfile 中:
pod 'pop', '~> 1.0'
注意徒坡,bug會在主分支上面進(jìn)行修復(fù)撕氧,然后在指定的分支上進(jìn)行發(fā)布。如果你喜歡嘗試最新的不大穩(wěn)定的版本喇完,你可以通過以下入口來訪問主分支:
pod 'pop', :git => 'https://github.com/facebook/pop.git'
使用
Pop 支持Core Animation 中的顯式動畫類型伦泥,你可以通過導(dǎo)入頭文件來使用它:
import <pop/POP.h>
開始動畫、停止動畫與更新動畫
開始執(zhí)行一個動畫锦溪,你可以將動畫添加到一個對象中:
POPSpringAnimation *anim = [POPSpringAnimation animation];[layer pop_addAnimation:anim forKey:@"myKey"];
停止一個動畫不脯,你可以根據(jù)一個鍵值來從對象中移除掉:
[layer pop_removeAnimationForKey:@"myKey"];
你也可以根據(jù)鍵值來查詢已經(jīng)存在的動畫,你可以在執(zhí)行動畫效果的同時來修改toValue屬性來實時更新動畫效果:
anim = [layer pop_animationForKey:@"myKey"];if (anim) { /* update to value to new destination / anim.toValue = @(42.0);} else { / create and start a new animation */ ....}
注意刻诊,雖然上述示例中用到了一個layer防楷,但是Pop動畫引擎是基于 NSObject 所寫的一個category,任何繼承自NSObject的對象都可以使用Pop動畫引擎则涯。