我正试图在应用程序中制作这个“旋转滚轮”效果,然后我让瓶子旋转,但它停在同一个位置。如何让它随机停止?谢谢大家
这里是代码:
- (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"];
}
答案 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
注意:我没有测试过这个解决方案。