IO中的按钮旋转

时间:2013-09-18 17:14:35

标签: ios random cabasicanimation

我正试图在应用程序中制作这个“旋转滚轮”效果,然后我让瓶子旋转,但它停在同一个位置。如何让它随机停止?谢谢大家

这里是代码:

- (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"]; 
}

1 个答案:

答案 0 :(得分: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

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