Type Property

cubic

Smooth spline calculation between keyframe values..

Declaration

static let cubic: CAAnimationCalculationMode

Discussion

Intermediate frames are computed using a Catmull-Rom spline that passes through the keyframes. You can adjust the shape of the spline by specifying an optional set of tension, continuity, and bias values, which modify the spline using the standard Kochanek-Bartels form.

Listing 1 shows how to create a keyframe animation object using cubic interpolation.

Listing 1

Creating a a keyframe animation object using cubic interpolation

let keyframeAnimation = CAKeyframeAnimation(keyPath: "position.y")
keyframeAnimation.calculationMode = kCAAnimationCubic
keyframeAnimation.keyTimes = [0, 0.25, 0.5, 0.75, 1]
keyframeAnimation.values = [310, 60, 120, 60, 310]

A layer animated with the keyframe animation created by the code above and with linearly interpolated horizontal movement would describe a path similar to Figure 1.

Figure 1

Tracing the path of an animation using cubic spline interpolated keyframes

Tracing the path of an animation using cubic spline interpolated keyframes