注意:因为我现在大部分工作都在 Swift 中,我决定停止开发 SBTween。
我开发了一个名为 TweenKit 的用于生产的 tweening 库。
SBTween 可以工作,并且我已经在几个发布的应用中使用了它,但它从未完全完成,所以边缘有点粗糙。
###关于
SBTween 是一个功能性的、但尚未完成的 iOS tweening 库。
SBTween 初始设计是为了便于开发最近在移动应用中变得流行的“可视动画界面引引导”体验。这些通常涉及到包含文本的 UIPageViewController。当用户滚动时,动画与用户的滚动同步播放。Philips Hue 应用的引引导体验是一个很好的例子。
就像任何灵活的 tweening 库一样,SBTween 允许通过按顺序或并行播放不同的动作来构建复杂的动画。SBTween 的方法与其他动画系统不同的地方在于,一组复杂的动作的最终状态是在将动画首次添加到系统时计算的。这允许动画反向运行,或者在动画的任何时间点都可以轻松地计算由系统产生的结果状态。
这使得 SBTween 对于整个动画最初就已知的情况非常适合,通常在非游戏应用中是这样。对于需要按累积方式运行动画的使用情况,SBTween 就不太适合了。例如,一个游戏中对象沿着路径移动,但后来还需要一个“摇晃”动画作为结果,而这个结果是由于用户输入而产生的,而这种输入在动画开始时是不知道的。
SBTween 对可动画化的内容没有限制,并且并不是为了简单地提供 UIKit 的动画。您可以使用 SBTween 来动画化 UIView 框架、自动布局约束、浮点属性、段落间距、AVAudioPlayer 体积或任何其他想在一段时间内动画化的值!
SBTween 动画是
如果您想为 SBTween 贡献,请这样做!对于最新的更改,请使用开发分支。
要运行示例项目,请克隆仓库,并首先从 Example 目录运行 pod install
创建变量/动作
// Create context
SBTContext *context = [[SBTContext alloc]init];
// Add variables to context
SBTVariable *variable = [[SBTVariable alloc]initWithName:@"SomeVariable" doubleValue:0];
[context addVariable:variable];
// Create actions
SBTActionInterpolate *interpolateAction =
[[SBTActionInterpolate alloc]initWithVariableName:@"SomeVariable" doubleValue:1 duration:5];
SBTActionYoYo *yoyoAction = [[SBTActionYoYo alloc]initWithAction:interpolateAction];
SBTActionRepeatForever *repeatAction = [[SBTActionRepeatForever alloc]initWithAction:yoyoAction];
// Add actions to context
[context addAction:repeatAction reverse:NO updateBlock:^{
// Perform updates here
} startRunning:YES];
更新
SBTVariable *variable = [context variableWithName:@"SomeVariable"];
double result = variable.value.doubleValue;
// Do something with result
SBTween 可以通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中
pod "SBTween"
想为 SBTween 做出贡献?以下是我待办事项列表中的功能快速列表
Steve Barnegren,[email protected]
https://twitter.com/SteveBarnegren
SBTween 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。