ios - 以圆周运动绕一点移动物体

标签 ios objective-c animation

我在 View 中有一些对象,我想在屏幕上围绕它们自己的点移动。我希望它们看起来几乎是静止的,但有轻微的圆周运动(不是旋转,项目将保持笔直和水平),有点像浮标在海洋中上下摆动,同时也有一些水平运动。

我的基本思路是围绕物体移动 anchor 。我只想要一个微妙的效果,对象不会在整个屏幕上移动。最多10-20分。它们将是仍然能够被按下的 UIButton。到目前为止,我搜索的所有结果都是关于一个点的旋转,而不是我想要的结果。

最佳答案

您可以使用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 框架才能使其正常工作。

关于ios - 以圆周运动绕一点移动物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667632/

相关文章:

ios - 如何在 ios 中的 textview 中获得不同的样式?

iphone - ViewController 层次结构

ios - UIImageView 无法正确调整大小

javascript - 视频播放暂停按钮动画

ios - CGIImage 在 segue 之后为 nil

objective-c - BOOL 的@property setter

objective-c - AVCaptureDevice - iphone/ipad 作为视频源

jquery - 使用 css 自动闪耀效果

jquery - 动画在 Firefox 的第二次迭代中不起作用

ios - 替换 WatchKit 中分层导航堆栈中的 Controller