测试已测试 | ✓ |
语言语言 | Objective-CObjective C |
许可证 | MIT |
发布时间最近发布 | 2014年12月 |
由William Zang维护。
一个非常简单的动画框架。由 Facebook POP 构建而成。使用 快速动画,您可以在不编写任何代码的情况下添加动画。
您可以在项目 DEMO 中查看演示。
如果您喜欢这个项目,请 star 支持!
FastAnimationProtocol
,ControlFastAnimationProtocol
和 FastAnimationReverseProtocol
的类。最小 iOS 目标:iOS 6.0+
XCode 版本:5.0+
安装 FastAnimation 最简单的方法是使用 CocoaPods
将 pod 添加到 podfile pod 'FastAnimation'
刷新项目 pod pod install
如果您想查看新功能,可以向 podfile 添加 pod 'FastAnimation', :head
来获取最新版本。
您可以通过设置用户定义的运行时代价来向视图添加动画。
以下是一些属性的含义
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
不想自动运行?没问题。您可以设置 NO
到 startAnimationWhenAwakeFromNib
属性。
bindingAnimationType
您可以将控件的事件绑定到某些动画。
通过编码来使用,就像使用故事板一样简单。
您只需设置动画类型属性并执行 - (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;
要扩展新的动画,您只需要创建一个新的类,它符合协议 FastAnimationProtocol
,ControlFastAnimationProtocol
和 FastAnimationReverseProtocol
。
例如
// 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
如果您想停止动画,可以在 UIView 实例中使用以下方法。
- (void)stopFAAnimation;
- (void)stopReverseFAAnimation;
您可以在 UIView 实例中使用以下方法来创建嵌套动画。所有子视图都可能移动。
- (void)startFAAnimationNested;
- (void)stopFAAnimationNested;
- (void)reverseFAAnimationNested;
- (void)stopReverseFAAnimationNested;
BounceLeft
,BounceRight
,BounceUp
,BounceDown
ZoomInX
,ZoomInY
首先,感谢您考虑为 FastAnimation 贡献。像您这样的人使 FastAnimation 成为一个如此出色的库。
您不仅添加功能或修复错误,还可以修复我的语言错误(抱歉我的英语!)或添加更多单元测试或更多指南。
如果您发现了错误或有问题,可以 创建一个问题!
如果您认为这可以修复,那么请 Fork FastAnimationWithPOP 并以描述性的名称创建一个分支。
如果您想提供一些美观的演示,请 Fork FastAnimationWithPopDemo。
一个好的分支名称可能如下所示(其中 issue #325 是您正在工作的票据)
git checkout -b 325-add-new-anmiation
此时,您应该准备好进行更改!不要犹豫,寻求帮助;每个人最初都是新手
如果您添加了一种新的动画,最好将其效果添加到 FastAnimationWithPopDemo 项目中。
如果它是一个新功能。您最好创建它的单元测试。您可以在目标 FastAnimationWithPopTests
中创建单元测试。
一旦实现完代码,请使用Command+U再次测试。
我们注重质量,所以您的PR(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
如果维护者要求您“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
在此特此免费许可任何获得此软件及其关联文档文件(“软件”)副本的人,在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方提供软件的人执行上述操作,但须遵守以下条件
上述版权声明和本许可声明应包含在软件或软件的重大部分的所有副本中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任(无论是基于合同、侵权或其他责任)负责,这些责任源于、因或与软件或其使用或其他交易有关。