Springアニメーションのテスト

( ios )

モチベーション

macOSでNSIndicatorViewを利用し用としたところ、なぜか背景が透過せずに若干グレイになってしまっていてそれが仕様のようなので自分で作ることにした。 どうせ作るんだったら少し捻ったものにしようと思い、試行錯誤している。

https://github.com/nakajijapan/CASpringAnimationTest

CASpringAnimation

Springアニメーションの制御がlayerに対して行えるようになります。 このパラメータをうまく設定することで期待しているアニメーションが実現できるようになります。

  • mass
    • 質量
  • initialVelocity
    • 初速度
  • damping
    • 振動の減衰
  • stiffness
    • ばねの弾性力

Example

これは実際の大きさになるためのアニメーションにスプリングを加えたものになります。

let animation = CASpringAnimation(keyPath: "transform.scale")
animation.mass = CGFloat(mass.value)
animation.damping = CGFloat(damping.value)
animation.stiffness = CGFloat(stiffness.value)

animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn)
animation.fromValue = 0.6
animation.toValue = 1.0

animation.isRemovedOnCompletion = true
animation.fillMode = kCAFillModeForwards
animation.duration = CFTimeInterval(duration.value)

Reference