MaterialMotionCoreAnimationTransitions 1.0.0

MaterialMotionCoreAnimationTransitions 1.0.0

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

Jeff Verkoeyen 维护。



 
依赖关系
MaterialMotionTransitions~> 1.0
MaterialMotionCoreAnimation~> 2.0
 

  • Material Motion 作者

Material Motion (Swift) 的核心动画转换

支持的语言

  • Swift 3
  • Objective-C

特性

TransitionTween 允许您在 Material Motion 转换期间表达双向缓动。

考虑以下一个简单的“淡入”转换导演的示例

class FadeInTransitionDirector: NSObject, TransitionDirector {
  let transition: Transition
  required init(transition: Transition) {
    self.transition = transition
  }

  func setUp() {
    let fadeIn = TransitionTween("opacity",
                                 transition: transition,
                                 segment: .init(position: 0, length: 1),
                                 back: NSNumber(value: 0),
                                 fore: NSNumber(value: 1))
    fadeIn.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.runtime.addPlan(fadeIn, to: transition.foreViewController.view.layer)
  }
}

在这个导演中,我们定义了一个单一的 TransitionTween 来处理前进和反向转换。向前移动时,发出从 0 到 1 的不透明度缓动。向后移动时,发出从 1 到 0 的不透明度缓动。在两个方向上,缓动都会在整个转换时间窗口中发生。

安装

使用

导入框架

@import MaterialMotionCoreAnimationTransitions;

现在您将能够访问所有的 API。

示例应用/单元测试

运行以下命令来检查 repo 的本地副本,以通过以下命令访问 Catalog 应用程序

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

指南

  1. 如何使用 TransitionTween 计划来动画化 CALayer 属性

如何使用 TransitionTween 计划来动画化 CALayer 属性

代码片段

在 Objective-C 中

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

在 Swift 中

let tween = TransitionTween(<#key path#>,
                            transition: transition,
                            segment: .init(position: <#position#>, length: <#length#>),
                            back: <#back value#>,
                            fore: <#fore value#>)
transition.scheduler.addPlan(tween, to: <#Layer#>)

贡献

我们欢迎贡献!

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

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

许可协议

采用Apache 2.0许可。详细信息请参阅LICENSE文件。