Просто хотел бы поделиться самым простым способом, который я нашел для этого, для любого, кто является новичком в CAAnimation, такого как я.
Вместо использования UIBezierPath, я просто вручную написал точки на экране (x, y) для пути, а затем создал путь, используя их, создавая необходимую кривую. Очень полезно и просто.
Надеюсь, вы найдете это полезным:
NSArray *myPoints = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:P(77,287)],
[NSValue valueWithCGPoint:P(97,270)],
[NSValue valueWithCGPoint:P(112,260)],
[NSValue valueWithCGPoint:P(130,250)],
[NSValue valueWithCGPoint:P(154,245)],
[NSValue valueWithCGPoint:P(174,250)],
[NSValue valueWithCGPoint:P(193,260)],
[NSValue valueWithCGPoint:P(210,270)],
[NSValue valueWithCGPoint:P(231,287)],
nil];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 77, 280);
for(NSValue *val in myPoints){
CGPoint p = [val CGPointValue];
CGPathAddLineToPoint(path, NULL, p.x, p.y);
}
CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.path = path;
CGPathRelease(path);