(目前正在编写编程指南)
TrAnimate 是一个专为简化复杂动画创建设计的 iOS 动画库,无需使用 Core Animation。
有三种方式将 TrAnimate 集成到您的项目中。首先是将所有源代码复制到当前项目中,并通过添加以下内容包含头文件。
#import "TrAnimate.h"
作为另一种选择,您可以使用 git 的子模块功能和 Xcode 的子项目功能将 TrAnimate 集成到您的项目中 -特别是如果您使用 git。这还允许您在 trunk 分支更新时随时更新 TrAnimate。简单的拉取(pull)即可从 TrAnimate 仓库获取最新和最伟大的功能。
打开终端,转到 Xcode 项目根目录,然后输入以下内容。
git submodule add https://github.com/trenskow/TrAnimate.git TrAnimate`.
这将把 TrAnimate 作为子项目添加,并从 Github 下载所有源代码。
接下来,将 TrAnimate.xcodeproject(现在位于项目的 TrAnimate 子文件夹中)拖入 Xcode 中的项目源代码树。
只需将其作为模块添加到源代码中,通过在源代码中导入模块即可。
@import TrAnimate
TrAnimate Static
添加到“目标依赖”中,并将 libTrAnimate Static.a
添加到链接的可执行文件。$(SRCROOT)/TrAnimate
现在您在需要 TrAnimate 时导入主头文件。
#import <TrAnimate/TrAnimate.h>
使用 TrAnimate 的淡入动画示例
[TrFadeAnimation animate:aView
duration:.3f
delay:.0f
direction:TrFadeAnimationDirectionIn];
以上代码将立即使 aView
渐变。
另一个示例可以是
[TrPositionAnimation animate:aView
duration:1.0
delay:.0f
toPosition:CGPointMake(100.0, 100.0)
anchor:TrPositionAnimationAnchorAutomatic
curve:[TrCurve easeInBounce]
completion:^(BOOL finished) {
NSLog(@"Move in complete!")
}];
这将把 aView
移动到位置 100.0, 100.0。曲线指定 aView
应反弹。最后,当动画完成时,完成块记录 Move is complete!
。
每个动画都有特殊的创建方法。请在每个动画的文档中查看如何创建它们。
将视图从一个位置移动到另一个位置,不影响视图的大小。
淡入视图。视图可以淡入或淡出。
更改视图的不透明度。
从可选的起始值缩放视图到结束值。
围绕一个轴旋转视图,从可选的起始值旋转到结束值。
这是为使用CALayer进行所有动画需求带来的。TrLayerAnimation
接受一个 CALayer
和一个键路径,并对它进行动画处理。
TrDirectAnimation
无需使用 Core Animation 进行动画,因此当您想要动画化 Core Animation 不支持的对象的属性时非常有用。一个例子可以是 UIScrollView
的 contentOffset
或甚至 AVAudioPlayer
的 volume
属性。
所有动画都支持自定义动画曲线。曲线是用块实现的,但也存在一些内置曲线,这些曲线是从 jQuery UI 中借用来的。曲线用 TrCurve
类表示,它也包含内置曲线。
内置曲线是
可以通过继承 TrCurve
并重写 transform:
方法实现自定义曲线 - 或者可以使用如下所示的块创建自定义曲线。
[TrCurve curveWithBlock:^(double t) {
return (-1.0 * cos(t * M_PI_2) - 1.0);
}];
上面的代码是实现 [TrCurve easeInSine]
曲线的实际代码。参数t代表介于0.0和1.0之间的值。动画块必须返回一个 double
。
同样,可以像下面那样直接在动画中使用自定义曲线。
[TrRotateAnimation animateView:aView
duration:.3f
delay:.0f
toAngle:M_PI_4
axis:TrRotateAnimationAxisZ
curve:[TrCurve curveWithBlock:^(double t) {
return t / 2.0;
}]];
上面的代码将 aView
从零弧度旋转到 M_PI_4。但提供的曲线实际上会减半 endAngle,因为 t
被除以 2
。
动画组允许您分组动画,并确定何时运行哪些动画。它允许您将其他动画组分组,确实是链接动画的强大工具。
(本说明将更新以更详细地说明动画组如何工作)
TrAnimate是为了满足创建复杂动画而无需频繁使用复杂核心动画设置的需求而创建的。而且还为了适应核心动画缺乏自定义插值和曲线。
TrAnimate已从其起源的应用程序中分离出来,并作为开源项目提供。该应用程序是KREAFUNK应用程序 - 在App Store上下载。
TrAnimate并不完整。它正在不断开发以添加更多功能。过渡功能目前正在实施中。
总是欢迎的贡献。特别是针对专业的动画。如果你有任何希望添加到库中的补充,请创建一个pull request。
所有曲线都来自jQuery UI库。jQuery和jQuery UI库被设计用于高质量浏览器交互和动画,并提供丰富的动画曲线集。
TrAnimate需要ARC。