我如何 accelerate/Slow 向下旋转 CABasicAnimation 中的按钮
How Can I accelerate/Slow down the rotation of a button in CABasicAnimation
我想让我的星球在靠近太阳时加速运动,在远离太阳时减速.. 请帮助我!谢谢
CABasicAnimation* rotationAnimation;
rotationAnimation=[CABasicAnimationanimationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: -M_PI * 2.0 /* full rotation*/ * 1/period ];//multiply more to add speed
rotationAnimation.duration = 15;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = HUGE_VALF;
[planet.layer addAnimation:rotationAnimation forKey:@"orbit"];
您想使用 CAMediaTimingFunction
。查看 pre-defined timing functions。您可以将其中之一分配给 rotationAnimation.timingFunction
。听起来你想要 kCAMediaTimingFunctionEaseInEaseOut
。我假设行星的起点远离太阳。在代码中,它看起来像这样:
Swift:
rotationAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
Objective-C:
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
我想让我的星球在靠近太阳时加速运动,在远离太阳时减速.. 请帮助我!谢谢
CABasicAnimation* rotationAnimation;
rotationAnimation=[CABasicAnimationanimationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: -M_PI * 2.0 /* full rotation*/ * 1/period ];//multiply more to add speed
rotationAnimation.duration = 15;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = HUGE_VALF;
[planet.layer addAnimation:rotationAnimation forKey:@"orbit"];
您想使用 CAMediaTimingFunction
。查看 pre-defined timing functions。您可以将其中之一分配给 rotationAnimation.timingFunction
。听起来你想要 kCAMediaTimingFunctionEaseInEaseOut
。我假设行星的起点远离太阳。在代码中,它看起来像这样:
Swift:
rotationAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
Objective-C:
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];