iOS/Objective-C:360图像旋转问题



我试图用一个间隔反复旋转图像(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))

最新更新