Кривые iOS UIBezierAnimation, как создать какую-то дугу?

Я почти уверен, что это довольно простой и понятный вопрос для всех, кто когда-либо пробовал это раньше, но я как бы новичок в том, что вы бы назвали "продвинутой" анимацией .

Я пытаюсь создать следующее движение объекта с помощью CAKeyframeAnimation (с ключевым путем «позиция»)

http://www.sumopaint.com/files/images800/aeegfexznpohlehd.jpg

Я пробовал задать путь с помощью UIBezierPath, но довольно быстро запутался и разочаровался, так как не нашел логики, стоящей за этим :)

Я хотел бы услышать, есть ли у вас мнение по этому поводу ...

Это мой базовый код (который также мог бы быть написан с нуля, если возникнет лучшая идея: P)

Также я хотел, чтобы объект постепенно исчезал по завершении. есть ли такой селектор, который работает после завершения анимации? (например, [UIView animateWithDuration])?

UIBezierPath *thumbPath = [UIBezierPath bezierPath];
[thumbPath moveToPoint: P(99,270)];
[thumbPath addCurveToPoint:P(164,260) controlPoint1:P(164,280) controlPoint2:P(164,280)];
[thumbPath addCurveToPoint:P(164,260) controlPoint1:P(260,310) controlPoint2:P(260,310)];

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.path = thumbPath.CGPath;
pathAnimation.duration = 2.0;

7
задан Shai Mishali 18 August 2011 в 22:19
поделиться