ルーレット盤アプリを開発しています。中央のボタンをタップすると、ホイールが数秒間回転し、その後速度が徐々に遅くなります。誰かが知っているなら、正しい方法で私を導いてください。
一定の速度で回転させることはできましたが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];