如何创建一个旋转的圆圈?

Posted

技术标签:

【中文标题】如何创建一个旋转的圆圈?【英文标题】:How to create a rotating circle? 【发布时间】:2013-08-03 10:13:35 【问题描述】:

我正在尝试制作一个简单的“旋转齿轮动画”。基本上,我想在屏幕上的某个位置放置一个圆圈,并给这个圆圈一个齿轮的图像(或者只是让图像旋转而不首先创建一个圆圈)。此外,齿轮应保持旋转。我怎样才能做到这一点?

我是 ios 开发的初学者。如果有人能提供一个简单的示例代码,我将不胜感激!

【问题讨论】:

您忘记发布您当前拥有的代码。 github.com/jonasschnelli/UIView-i7Rotate360 谢谢!我看看代码 【参考方案1】:

您实际上必须无限旋转UIImageView

首先#import <QuartzCore/QuartzCore.h>

  - (void) runSpinAnimationOnView:(UIView*)view duration:(CGFloat)duration rotations:    (CGFloat)rotations repeat:(float)repeat;

    CABasicAnimation* rotationAnimation;
    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ];
    rotationAnimation.duration = duration;
    rotationAnimation.cumulative = YES;
    rotationAnimation.repeatCount = repeat;

    [view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];

假设您有一个UIImageView 并在其上分配一个图像并命名为 ImgView。在viewDidLoad,添加您的代码如下:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationRepeatCount:MAXFLOAT];
ImgView.transform = CGAffineTransformMakeRotation(M_PI);
[UIView commitAnimations];

来自链接:-

UIView Infinite 360 degree rotation animation?

Infinite rotating image background UIImageView

【讨论】:

使用 Apple 推荐的 iOS4+ 的基于块的动画不是更好吗?现在,我们几乎是 iOS7...

以上是关于如何创建一个旋转的圆圈?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用ZBrush中的位移、旋转和缩放功能

如何根据旋转偏移边界圆?

如何使用 GLEW、OpenGL 或 SDL2 以椭圆运动围绕另一个圆圈旋转一个圆圈?

用css悬停旋转圆圈[重复]

SVG元素在圆圈上旋转

C# 耗时的程序 界面卡死,如何做一个缓冲界面,例如有个圆圈在旋转的效果展示