The documentation is very poor on this. What's the effect of these? The only thing that seems to work as expected is kCAAnimationLinear. What can I do with the others, for example?
kCAAnimationDiscrete
Each keyframe value is used in turn, no interpolated values are calculated.
This just means that there is no animation at all. And whatever keyframe values that you provide when setting up a keyframe animation will be used like a straight slide show with no transitions.
kCAAnimationPaced
Keyframe values are interpolated to produce an even pace throughout the animation.
This applies a timing curve to your animation from one keyframe to another, producing a slight cadence to the animation. Similar in effect to the CAMediaTimingFunction kCAMediaTimingFunctionEaseInEaseOut.
The calculationMode property is applied to all keyframe transitions within the entire animation.
Individual timing functions can be specified for each keyframe transition by providing an NSArray of CAMediaTimingFunction instances and passing it to the timingFunctions property of the animation. The array of timing functions must match the array of keyframes in number for it to work.