0

我正在尝试在应用程序中制作这种“旋转轮子”效果,我让瓶子旋转,但它停在同一个位置。我怎样才能让它随机停止?谢谢你们

这里的代码:

- (IBAction)spin:(id)sender {
    CABasicAnimation *fullRotation = [CABasicAnimation animationWithKeyPath: @"transform.rotation"];
    fullRotation.fromValue = [NSNumber numberWithFloat:0];
    fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
    fullRotation.duration = 0.5;
    fullRotation.repeatCount = 2;
    [button.layer addAnimation:fullRotation forKey:@"360"]; 
}
4

1 回答 1

0

CABasicAnimation 的 toValue 属性控制动画的最终位置。您当前将其设置为一个常量值 (360*M_PI/180)。您可能希望使用 arc4random() 创建一个随机值并将 toValue 设置为该值。

例如:

float randomRadians = arc4random() / ((pow(2, 32)-1)) * M_PI*2;
fullRotation.toValue = [NSNumber numberWithFloat:randomRadians];

随机值的代码来自这个 SO 答案:Obj-c generate a random float(or double) number between 0 and ∏ * 2

注意:我没有测试过这个解决方案。

于 2013-09-18T18:25:37.540 回答