我试图用一个间隔反复旋转图像(360)。我发现这个答案(iOS中的图像旋转)似乎还可以,但对我不起作用。当我加载VC时,我可以看到轻微的运动,但仅此而已。有任何想法吗?我正在使用的代码:
- (void)viewDidAppear:(BOOL)animated {
[self.compass setTransform:CGAffineTransformMakeRotation(10*(M_PI/360))];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(rotation) userInfo:nil repeats:YES];
}
-(void)rotation{
[self.compass setTransform:CGAffineTransformMakeRotation(10*(M_PI/360))];
}
编辑:
- (void)viewDidAppear:(BOOL)animated {
[self.compass setTransform:CGAffineTransformMakeRotation(10*(M_PI/360))];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(rotation) userInfo:nil repeats:YES];
}
-(void)rotation{
[self.compass setTransform:CGAffineTransformMakeRotation(10*(M_PI/360))];
CGAffineTransform transform = CGAffineTransformRotate(self.compass.transform, 10*(M_PI/360));
[self.compass setTransform:transform];
}
动画旋转如下:
[UIView animateWithDuration:0.3 animations:^{
compas.transform = CGAffineTransformMakeRotation(M_PI/2);
}];
您的旋转正在发生,但这只是一个很小的旋转:10*Pi/360弧度等于5度。pi弧度等于180度,因此,如果您想将其旋转360度旋转2 * M_PI
。
请注意,您当前没有动画动作动画,而当您仅在没有动画的情况下旋转视图时,它看起来与转换时完全相同。要动画过渡,请查看Uiview动画:https://www.raywenderlich.com/2454/uiview-tutorial-for-ios-how-oios-how-to-use-use-us-us-us-uiview-animation
您还需要添加上一个旋转,否则您会一遍又一遍地旋转到相同的角度:
CGAffineTransformMakeRotation(NewAngle + 10*(M_PI/360))