Я не думаю, что можно установить начальную точку для CGPathAddEllipseInRect.(По крайней мере, у меня ничего не получилось)
вместо использования: CGPathAddEllipseInRect , вы должны использовать: CGPathAddArc! Например:
CAKeyframeAnimation *myAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
myAnimation.fillMode = kCAFillModeForwards;
myAnimation.repeatCount = 5;
myAnimation.calculationMode = kCAAnimationPaced;
myAnimation.duration = 10.0;
CGMutablePathRef animationPath = CGPathCreateMutable();
NSInteger startVal = M_PI / 2;
//seventh value (end point) must be always 2*M_PI bigger for a full circle rotation
CCGPathAddArc(animationPath, NULL, 100, 100, 100, startVal, startVal + 2*M_PI, NO);
myAnimation.path = animationPath;
CGPathRelease(animationPath);
[view.layer addAnimation:myAnimation forKey:@"changeViewLocation"];
повернет полный круг, начиная снизу - по часовой стрелке.Измените значение startVal, чтобы изменить начальную позицию вращения.(полный оборот 2 * M_PI).