MaterialMotionCoreAnimation 2.0.0

MaterialMotionCoreAnimation 2.0.0

测试已测试
语言语言 SwiftSwift
许可协议 Apache 2
发布日期最后发布日期2017年2月
SwiftSwift 版本3.0
SPM支持 SPM

Jeff Verkoeyen 维护。



  • 作者
  • 物料运动作者团队

Core Animation for Material Motion (Swift)

此库为 Core Animation 和 Material Motion 运行时之间提供了一个桥梁。

支持的语言

  • Swift 3
  • Objective-C

功能

Tween 使用 Core Animation 的 CAKeyframeAnimation 沿缓动曲线动画 CALayer 属性。

使用 Tween 的方式就像使用 CAKeyframeAnimation 实例一样:提供一个关键路径、持续时间以及一个值数组。

let tweenBackgroundColor = Tween("backgroundColor",
                                 duration: animDuration,
                                 values: [UIColor.orange.cgColor, UIColor.lightGray.cgColor])
scheduler.addPlan(tweenBackgroundColor, to: myView)

Tween 的属性映射到以下 Core Animation 属性

Tween Core Animation
延迟 延迟
持续时间 持续时间
关键路径 关键路径
关键位置 关键时间
时序函数 时序函数

目前不支持其他 Core Animation 属性。查看我们提交的[功能请求][https://github.com/material-motion/coreanimation-swift/labels/Feature%20request]以跟踪支持其他功能进展。

安装

使用

导入框架

@import MaterialMotionCoreAnimation;

现在你将访问所有 API。

示例应用/单元测试

通过运行以下命令可以访问 repo 中的本地副本,以访问 Catalog 应用程序:

git clone https://github.com/material-motion/coreanimation-swift.git
cd coreanimation-swift
pod install
open MaterialMotionCoreAnimation.xcworkspace

......(示例代码)......

  1. 指南
  2. 如何使用 Tween 计划动画属性

如何使用 Tween 计划动画属性

代码片段

Objective-C 中的示例

MDMTween *tween = [[MDMTween alloc] initWithKeyPath:@"<#key path#>"
                                           duration:<#duration#>
                                             values:@[<#values...#>]];
[scheduler addPlan:tween to:<#Object#>];

Swift 中的示例

let tween = Tween(<#key path#>, duration: <#duration#>, values: [<#values...#>])
scheduler.addPlan(tween, to: <#Object#>)

如何只使用目的地值动画属性

传入一个单一值给Tween,它将把这个值作为CABasicAnimation的toValue。根据Core Animation文档

在图层属性当前值和`toValue`之间进行插值。

代码片段

Objective-C 中的示例

MDMTween *tween = [[MDMTween alloc] initWithKeyPath:@"<#key path#>"
                                           duration:<#duration#>
                                             values:@[<#value#>]];
[scheduler addPlan:tween to:<#Object#>];

Swift 中的示例

let tween = Tween(<#key path#>, duration: <#duration#>, values: [<#value#>])
scheduler.addPlan(tween, to: <#Object#>)

如何将Tween值提交给图层

我们提供了两个辅助API来提交Tween计划的to/from值到特定的CALayer实例。这通常用于提交Tween的to值到图层,以确保属性在动画完成后看起来不会“突然弹回”。

代码片段

Objective-C 中的示例

[tween commitFirstValueTo:<#CALayer#>];
[tween commitLastValueTo:<#CALayer#>];

Swift 中的示例

tween.commitFirstValue(to: <#CALayer#>)
tween.commitLastValue(to: <#CALayer#>)

贡献

我们欢迎贡献!

查看我们的即将到来的里程碑

了解更多关于我们的团队我们的社区以及我们的贡献者必备

许可证

根据Apache 2.0许可证授权。请参阅LICENSE文件以获取详细信息。