我使用此代码来旋转图像。
- (IBAction)spin:(id)sender {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:5.0];
[UIView setAnimationBeginsFromCurrentState:YES];
self.imgRad.transform = CGAffineTransformMakeRotation(arc4random() % 360 * M_PI / 180);
[UIView commitAnimations];
}
现在我有两个问题。
first:如果随机数大于90,则图像会以其中心靠近右角移动。它与随机数有关。如此高的数字=图像的位置更接近右角。我该如何解决这个问题?每次超过90时,我是否必须设置UIImageView
的新中心?
秒:如果数字为例如300,则图像不会旋转300度,它只是以另一种方式旋转60度。我该如何解决这个问题?
非常感谢!
答案 0 :(得分:2)
CAAnimation
。NSNumber
解决。代码:
CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotation.fromValue = [NSNumber numberWithFloat:0];
rotation.toValue = [NSNumber numberWithFloat:(arc4random() % 360 * M_PI / 180)];
rotation.duration = 5.0f;
rotation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
rotation.fillMode = kCAFillModeForwards;
rotation.removedOnCompletion = NO;
[self.imgRad.layer addAnimation:rotation forKey:@"rotatationRandom"];