Перемещение объекта вокруг точки кругового движения
У меня есть несколько объектов, которые я хочу перемещать по своим точкам на экране. Я хочу, чтобы они казались почти неподвижными, но с легким круговым движением (не вращение, предметы останутся прямыми и ровными), вроде как буй, подпрыгивающий вверх и вниз в океане с некоторым горизонтальным движением.
Моя основная мысль - переместить опорную точку вокруг объекта. Мне нужен только тонкий эффект, объекты не будут перемещаться по всему экрану. Максимум 10-20 баллов. Они будут кнопками UIB, которые еще можно нажимать. Пока что все, что я искал, вращается вокруг точки, а не то, что мне нужно.
Любая помощь будет оценена.
1 ответ
Ты можешь использовать CAKeyframeAnimation
чтобы ваш объект шел по маленькому кругу или любому другому пути, который соответствует вашим потребностям. Вот как вы создаете и используете CAKeyframeAnimation
объект.
CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO;
CGMutablePathRef * circle = CGPathCreateWithEllipseInRect(CGRectMake(/* the center of your object and the radius of your circle*/));
pathAnimation.path = circle;
CGPathRelease(circle);
[buttonView.layer addAnimation:pathAnimation forKey:@"animatePath"];
Это должно начать вас. Обратите внимание, что вам нужно импортировать платформу QuartzCore, чтобы это работало.