FastAnimationWithPOP 0.0.2

FastAnimationWithPOP 0.0.2

测试已测试
语言语言 Objective-CObjective C
许可证 MIT
发布时间最近发布2014年12月

William Zang维护。




  • 作者
  • William

FastAnimation

一个非常简单的动画框架。由 Facebook POP 构建而成。使用 快速动画,您可以在不编写任何代码的情况下添加动画。

您可以在项目 DEMO 中查看演示。

如果您喜欢这个项目,请 star 支持!

Demo

特性

  • 使用属性将动画添加到任何视图。
  • 从 NIB 中唤醒时自动运行。
  • 您还可以停止自动运行并手动运行动画。
  • 控制动画的详细内容,如延迟、持续时间等。
  • 使用属性将动画绑定到控件。
  • 扩展动画的简单方式:仅创建符合协议 FastAnimationProtocolControlFastAnimationProtocolFastAnimationReverseProtocol 的类。

要求

最小 iOS 目标:iOS 6.0+

XCode 版本:5.0+

安装

安装 FastAnimation 最简单的方法是使用 CocoaPods

  1. 将 pod 添加到 podfile pod 'FastAnimation'

  2. 刷新项目 pod pod install

如果您想查看新功能,可以向 podfile 添加 pod 'FastAnimation', :head 来获取最新版本。

使用方法

1. 与 Storyboard 一起使用

您可以通过设置用户定义的运行时代价来向视图添加动画。

StroyBoard1

StroyBoard2

以下是一些属性的含义

在 UIView 中

  • animationType

    您想要什么样的动画?您可以通过此属性给出答案。您可以使用完整类名,也可以不带 FAAnimation 前缀。

  • delay

    如果您不想立即开始动画,可以设置以秒为单位的 delay 时间。

  • animationParams

    这有许多功能。每个动画都需要自己的参数。所有这些都位于 animationParams 属性中。

    您可以在每个动画头文件中找到相关信息。例如以下这样

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

    不想自动运行?没问题。您可以设置 NOstartAnimationWhenAwakeFromNib 属性。

在 UIControl 中

  • bindingAnimationType

    您可以将控件的事件绑定到某些动画。

2. 通过编码来使用它

通过编码来使用,就像使用故事板一样简单。

您只需设置动画类型属性并执行 - (void)startFAAnimation。例如

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];

您还可以使用其他方法,如

// In UIView instance.
- (void)startFAAnimation;
- (void)reverseFAAnimation;
// In UIControl instance.
- (void)bindingFAAnimation;
- (void)unbindingFAAnimation;

3. 扩展新的动画

要扩展新的动画,您只需要创建一个新的类,它符合协议 FastAnimationProtocolControlFastAnimationProtocolFastAnimationReverseProtocol

例如

// 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. 更多的动画控制

  • 停止动画

如果您想停止动画,可以在 UIView 实例中使用以下方法。

- (void)stopFAAnimation;
- (void)stopReverseFAAnimation;
  • 嵌套动画

您可以在 UIView 实例中使用以下方法来创建嵌套动画。所有子视图都可能移动。

- (void)startFAAnimationNested;
- (void)stopFAAnimationNested;
- (void)reverseFAAnimationNested;
- (void)stopReverseFAAnimationNested;

现在包含的动画

  • 反弹动画:BounceLeftBounceRightBounceUpBounceDown
  • 缩放动画:ZoomInXZoomInY
  • 震动动画
  • 分组动画
  • 缩放出动画
  • 按钮缩放动画
  • 更多动画等待您的贡献...

待办事项

  • 使演示更美观。
  • 过渡动画。
  • 确保所有功能都有单元测试。
  • 更多有趣且强大的动画。
  • iOS 5 支持。
  • Swift 支持。

贡献

首先,感谢您考虑为 FastAnimation 贡献。像您这样的人使 FastAnimation 成为一个如此出色的库。

您不仅添加功能或修复错误,还可以修复我的语言错误(抱歉我的英语!)或添加更多单元测试或更多指南。

1. 接下来该怎么做?

如果您发现了错误或有问题,可以 创建一个问题

2. Fork & 创建分支

如果您认为这可以修复,那么请 Fork FastAnimationWithPOP 并以描述性的名称创建一个分支。

如果您想提供一些美观的演示,请 Fork FastAnimationWithPopDemo

一个好的分支名称可能如下所示(其中 issue #325 是您正在工作的票据)

git checkout -b 325-add-new-anmiation

3. 实现您的修复或功能

此时,您应该准备好进行更改!不要犹豫,寻求帮助;每个人最初都是新手 :smile_cat:

4. 同步实现演示

如果您添加了一种新的动画,最好将其效果添加到 FastAnimationWithPopDemo 项目中。

5. 单元测试

如果它是一个新功能。您最好创建它的单元测试。您可以在目标 FastAnimationWithPopTests 中创建单元测试。

6. 运行测试

一旦实现完代码,请使用Command+U再次测试。

我们注重质量,所以您的PR(Pull Request)在没有通过所有测试之前不会被合并。

7. 提交Pull Request

此时,您应该切换回master分支,并确保它与FastAnimation的master分支保持最新。

git remote add upstream [email protected]:WilliamZang/FastAnimationWithPOP.git
git checkout master
git pull upstream master

然后从您本地的master分支更新您的功能分支,并推送它!

git checkout 325-add-new-anmiation
git rebase master
git push --set-upstream origin 325-add-new-anmiation

最后,转到GitHub并提交Pull Request :D

8. 维护您的Pull Request

如果维护者要求您“rebase”您的PR,这意味着代码发生了许多变化,您需要更新分支以便更容易合并。

有关Git中rebase的更多信息,请参阅许多优秀的资源,但这里有一些建议的工作流程

git checkout 325-add-new-anmiation
git pull --rebase upstream master
git push -f 325-add-new-anmiation

许可

MIT许可证 (MIT)

版权所有 (c) 2014 William

在此特此免费许可任何获得此软件及其关联文档文件(“软件”)副本的人,在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方提供软件的人执行上述操作,但须遵守以下条件

上述版权声明和本许可声明应包含在软件或软件的重大部分的所有副本中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任(无论是基于合同、侵权或其他责任)负责,这些责任源于、因或与软件或其使用或其他交易有关。