DKAnimationKit 0.1.1

DKAnimationKit 0.1.1

测试测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2015年5月
SPM支持 SPM

Dravenessdraveness 维护。



  • Draveness

DKAnimationKit 是一个使用 Swift 在 iOS 上简化动画的 DSL。这是 jhurray 的 JHChainableAnimations 的 Swift 版本。

如果您用 Objective-C 编写应用程序,应使用 JHChainableAnimations

使用 JHChainableAnimations

view.makeScale()(2.0).spring().animate()(1.0)

使用 DKAnimationKit

使用 DKAnimationKit,您不需要编写 额外的括号

view.animation.makeScale(2.0).spring.animate(1.0)

Podfile

pod "DKAnimationKit", "~> 0.1.1"

用法

如果您熟悉 JHChainableAnimations,在这里阅读用法并不必要。

这两个框架之间的唯一区别在于,在使用 DKAnimationKit 时,您应该首先对 UIView 实例调用 animation

view.animation.moveX(10).animate(1.0)

动画

链式属性或函数如 moveX(x) 必须放在 animate(duration) 函数之间。

view.animation.moveX(100.0).animate(1.0)

如果您想同时进行多个动画。

view.animation.moveX(100.0).moveY(100.0).animte(1.0)

这将同时将视图向右移动100点,向下移动100点。顺序并不重要。

链式动画

要链式动画,请使用 thenAfter(duration) 函数分离链式过程。

view.animation.moveX(100.0).thenAfter(1.0).makeScale(2.0).animate(2.0)

这将让视图移动一秒,然后移动后放大两秒。

动画效果

要添加动画效果,请在要应用的链式属性之后调用效果方法。

以下是使用弹簧效果移动视图的示例。

view.animation.moveX(10).spring.animate(1.0)

如果添加了两个动画效果,第一个将被清除。

view.animation.moveX(10).spring.bounce.animate(1.0)
// The same as view.animation.moveX(10).bounce.animate(1.0)

锚定

要锚定视图,请在动画链中的某个点调用锚定方法。如果添加了两个锚定属性,第一个将像效果一样被清除。

view.animation.rotate(180).anchorTopLeft.thenAfter(1.0).rotate(90).anchorCenter.animanimation

延迟

要延迟动画,请调用链式函数 wait(time)delay(time)

view.animation.moveXY(100, 40).wait(0.5).animate(1.0)
view.animation.moveXY(100, 40).delay(0.5).animate(1.0)
delay

这将在0.5秒的延迟后移动视图。

完成

如果动画完成后要运行代码,应该设置animationCompletion属性或调用animateWithCompletion(t, completion)函数。

view.animation.makeX(0).animateWithCompletion(1.0, {
    println("Animation Done")
})

这和以下相同

view.animation.animationCompletion = {
    println("Animation Done")
}
view.animation.makeX(0).aniamte(1.0)

同时也和以下相同

view.animation.makeX(0).aniamte(1.0).animationCompletion = {
    println("Animation Done")
}

贝塞尔路径

你也可以沿着UIBezierPath动画化一个视图。首先调用bezierPathForAnimation方法,然后��加点到它上面或者添加曲线,并在可链式属性中使用。

let path = view.animation.bezierPathForAnimation()
path.addLintToPoint(CGPoint(x: 30, y: 40))
view.animation.moveOnPath(path).animate(1.0)

路径移动动画效果不起作用。

许可证

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