SBTween 0.1.1

SBTween 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2017年4月

Steve Barnegren 维护。



SBTween 0.1.1

  • Steve Barnegren

注意:因为我现在大部分工作都在 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 做出贡献?以下是我待办事项列表中的功能快速列表

  • mac 支持(需要使用 CVDisplayLink 而不是 CADisplayLink)
  • Catmull-Rom 动作
  • 贝塞尔路径动作
  • 功能齐全的演示应用程序
  • 文档
  • 测试(是的,我知道...)

作者

Steve Barnegren,[email protected]

https://twitter.com/SteveBarnegren

许可证

SBTween 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。