0

ルーレット盤アプリを開発しています。中央のボタンをタップすると、ホイールが数秒間回転し、その後速度が徐々に遅くなります。誰かが知っているなら、正しい方法で私を導いてください。

一定の速度で回転させることはできましたがimageView、ホイールの速度を徐々に遅くするのに苦労しています。

回転コード

CALayer *layer = container.layer;
CAKeyframeAnimation *animation;
animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];
animation.duration = 1.5f;
animation.cumulative = YES;
animation.repeatCount = 1;
animation.values = [NSArray arrayWithObjects:       // i.e., Rotation values for the 3 keyframes, in RADIANS
                    [NSNumber numberWithFloat:0.0 * M_PI],
                    [NSNumber numberWithFloat:0.75 * M_PI],
                    [NSNumber numberWithFloat:1.5 * M_PI], nil];
animation.keyTimes = [NSArray arrayWithObjects:     // Relative timing values for the 3 keyframes
                      [NSNumber numberWithFloat:0],
                      [NSNumber numberWithFloat:.5],
                      [NSNumber numberWithFloat:1.0], nil];
animation.timingFunctions = [NSArray arrayWithObjects:
                             [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn], // from keyframe 1 to keyframe 2
                             [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut], nil];  // from keyframe 2 to keyframe 3
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
[layer addAnimation:animation forKey:nil];
4

1 に答える 1

2

CAKeyframeAnimationのドキュメントを見ると、イージングなどを追加するtimingFunctionsプロパティがあります

https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CAKeyframeAnimation_class/Introduction/Introduction.html

于 2013-02-08T10:29:09.530 に答える