介紹一下開源項目FastAnimationWithPOP

介紹一下開源項目FastAnimationWithPOP

JUL 23RD, 2014git

這是一個很是easy的動畫框架,基於Facebook的POP庫。github

使用它你就可以在故事版中以0行代碼的代價來加入動畫了。objective-c

Github上地址是 這裏.spring

你可以從這裏下載DEMO查看效果.框架

假設你認爲不錯,歡迎在到這裏點個贊,方便讓不少其它人注意到它動畫

Demo

功能

  • 使用屬性來加入一個動畫到隨意的View。

  • 在nib或者故事版喚醒時本身主動運行動畫。

  • 也可以隨時手動運行動畫。
  • 控制動畫的細節。
  • 給control綁定一些動畫。好比按下鬆開等狀態。
  • 輕鬆的擴展新的動畫,僅僅需要實現FastAnimationProtocolControlFastAnimationProtocol 和 FastAnimationReverseProtocol這幾個協議.

環境要求

iOS SDK: iOS 6.0+this

XCode版本號: 5.0+spa

怎樣安裝

最好的辦法是使用CocoaPods:3d

  1. 加入這行到你的podfile文件 pod 'FastAnimation'code

  2. 安裝更新 pod install

假設想要嘗試最新的版本號。你可以加入這個pod 'FastAnimation', :head.

使用指導

1. 在故事板裏使用

你可以經過設置用戶本身定義執行時屬性(user defined runtime attributes)給View加入一個動畫。

StroyBoard1

StroyBoard2

如下是一些屬性的含義:

UIView的屬性

  • animationType

    經過這個屬性來指定動畫的類型,可以是完整的類名,也可以省略FAAnimation前綴.

  • delay

    運行動畫的延時。以秒爲單位。

  • animationParams

    這個是各個動畫的靈活參數。你可以從動畫類的頭文件裏找到信息,好比如下:

1
2
3
4
5
#define kSpringBounciness (@"animationParams.springBounciness") #define kSpringSpeed (@"animationParams.springSpeed") #define kDynamicsTension (@"animationParams.dynamicsTension") #define kDynamicsFriction (@"animationParams.dynamicsFriction") #define kDynamicsMass (@"animationParams.dynamicsMass") 
  • startAnimationWhenAwakeFromNib

    定義是否需要在故事板喚醒的時候就運行動畫,默認是YES

UIControl的屬性

  • bindingAnimationType

    經過這個屬性來指定控件動畫的類型。可以是完整的類名。也可以省略FAAnimation前綴.

2. 代碼寫View的應用

在代碼寫View中使用FastAnimation相同方便。

你可以設置動畫類型等屬性。而後運行- (void)startFAAnimation就能夠。就像這樣:

1
2
3
4
5
6
7
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; view.backgroundColor = [UIColor redColor]; view.animationType = @"Shake"; view.animationParams[@"velocity"] = @-7000; // You can also set params like this // [view setValue:@-7000 forKeyPath:kShakeVelocity]; [view startFAAnimation]; 

還有這些擴展的使用方法:

1
2
3
4
5
6
// In UIView instance. - (void)startFAAnimation; - (void)reverseFAAnimation; // In UIControl instance. - (void)bindingFAAnimation; - (void)unbindingFAAnimation; 

3. 定義一個新的動畫擴展

輕鬆的擴展新的動畫,僅僅需要實現FastAnimationProtocolControlFastAnimationProtocol 和 FastAnimationReverseProtocol這幾個協議.

就像這樣:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// new_animation.h @interface FAAnimationNewAnimation : NSObject<FastAnimationProtocol, FastAnimationReverseProtocol> // Maybe only FastAnimationProtocol  @end // new_animation.m @implementation FAAnimationBounceRight  + (void)performAnimation:(UIView *)view {  // some thing you like. }  + (void)stopAnimation:(UIView *)view {  // some thing you like. }  + (void)reverseAnimation:(UIView *)view {  // some thing you like. }  + (void)stopReverse:(UIView *)view {  // some thing you like. } @end 

4. 一些控制動畫的操做

  • 中止動畫:

假設想要手動體制。使用如下的方法:

1
2
- (void)stopFAAnimation; - (void)stopReverseFAAnimation; 
  • 嵌套動畫:

使用例如如下方法處理嵌套:

1
2
3
4
- (void)startFAAnimationNested; - (void)stopFAAnimationNested; - (void)reverseFAAnimationNested; - (void)stopReverseFAAnimationNested; 

眼下已經擁有的動畫:

  • 反彈動畫(4方向): BounceLeft,BounceRight,BounceUp,BounceDown
  • 放大動畫(2方向):ZoomInX,ZoomInY
  • 顫動動畫
  • 組動畫
  • 放大動畫
  • Button的放大效果綁定
  • 不少其它的動畫等着你們的貢獻喲。

下一步要作的事

  • 把DEMO和庫項目和到同一個Workspace裏。

  • 製做不少其它更好看的DEMO。

  • 假如便捷的轉場動畫。眼下先設法支持iOS7+
  • 確保所有的功能都含有單元測試。

  • 不少其它更好的動畫。
  • 把核心部分和效果部分分離,效果依照iOS5 6 7+來打成不一樣的包.
  • 支持Swift寫擴展.

 Jul 23rd, 2014

相關文章
相關標籤/搜索