私はこれをやろうとしています:すでにある値に回転されているビューがあります.15度としましょう。
15 度回転したビューを想像してください。
次に、このビューを現在の回転から 40 度回転させたいということだけはわかっています。
そのビューが 15 度から 40 度に回転する様子を想像してみてください。
練習のために、CAKeyFrameAnimation でそれを行いたいと思います。しかし、問題は、私ができることは、どこからどこまでを厳密に指定することだけです. UIView アニメーションのような便利な「現在の状態を取得する」機能はありませんよね? どうすればいいですか?
また、必要な回転量に関係なく、その回転に常に 3 つのキーフレームを指定したいと考えています。
3 つのキーフレームを使用して、ビューが 15 度から 40 度まで回転する様子を想像してみてください。
しかし、別の大きな問題があります。別のアニメーションが別のターゲットで開始しなければならない場合があります。ビューが現在 20 度から 100 度まで回転していて、アニメーションのちょうど中間で新しいアニメーションが開始され、そのビューを 15 度にしたいとします。シンプルな UIView アニメーションを使用します。CAKeyFrameAnimation でそれを行う方法は?
基本的に、現在の状態を取得する UIView アニメーションのように動作するようにしたい ;)
CALayer* theLayer = rotatedView.layer;
CAKeyframeAnimation* animation;
animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];
animation.duration = 2;
animation.repeatCount = 1;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
animation.values = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:(10.0 / 180.0) * M_PI],
[NSNumber numberWithFloat:(20.0 / 180.0) * M_PI],
[NSNumber numberWithFloat:(30.0 / 180.0) * M_PI], nil];
[theLayer addAnimation:animation forKey:@"transform.rotation.z"];