The slow downs that you are seeing is due to the default calculation mode where each segment of the animation takes the same time. This means that very short segments are going to move slower.
If you look a the documentation for the path
property, you will see how to achieve a constant velocity along the path:
How the animation proceeds along the path is dependent on the value in the
calculationMode
property. To achieve a smooth, constant velocity animation along the path, set thecalculationMode
property tokCAAnimationPaced
orkCAAnimationCubicPaced
.
So, to get a constant pace throughout the animation you should set the calculationMode
to kCAAnimationPaced
.