Некоторое время назад я выпустил некоторый код , который делает именно то, что вы ищете. По сути, вам нужно сгенерировать свой собственный CGPathRef
, содержащий все точки, по которым слой должен ударить, и использовать этот путь для атрибута path
в CAKeyframeAnimation
. Код будет выглядеть примерно так:
CGPoint path[3] = {
FTAnimationOutOfViewCenterPoint(enclosingView.bounds, view.frame, view.center, direction),
[self overshootPointFor:view.center withDirection:direction threshold:(overshootThreshold_ * 1.15)],
view.center
};
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
CGMutablePathRef thePath = CGPathCreateMutable();
CGPathAddLines(thePath, NULL, path, 3);
animation.path = thePath;
CGPathRelease(thePath);
Весь метод здесь .