CAKeyframeAnimation - Примеры - PullRequest
       12

CAKeyframeAnimation - Примеры

4 голосов
/ 14 апреля 2010

У меня есть меню, которое представляет собой CALayer, который будет скользить по экрану до заданной точки. Мне нужен эффект, когда меню будет проходить немного дальше точки, затем немного раньше точки и затем попадать в точку. Я могу перемещать меню, применяя трансформацию, но я надеялся, что этот эффект отскакивает, сработает. Я искал CAKeyframeAnimation, но у меня проблемы с поиском примера / учебника. Я посмотрел руководство по программированию CA, но ничего не нашел. Любые ссылки или помощь будут великолепны. Спасибо.

1 Ответ

5 голосов
/ 25 апреля 2011

Некоторое время назад я выпустил некоторый код , который делает именно то, что вы ищете. По сути, вам нужно сгенерировать свой собственный 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);

Весь метод здесь .

...