介绍一下开源项目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

相关文章
相关标签/搜索