0

次のアニメーションを実装しようとしています。

    yourSubView.transform = CGAffineTransformMakeScale(0.01, 0.01);
[UIView animateWithDuration:0.4 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 
//change time duration according to requirement
// animate it to the identity transform (100% scale)
yourSubView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished){
// if you want to do something once the animation finishes, put it here
}];

サブビューの動きと組み合わされます。Core Animationではアニメーションを組み合わせることができますが、UIViewアニメーションではどのように組み合わせることができますか?

このコードをUIViewアニメーションからCoreアニメーションに変換できますか?

yourSubView.transform = CGAffineTransformMakeScale(0.01, 0.01);
[UIView animateWithDuration:0.4 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 
//change time duration according to requirement
// animate it to the identity transform (100% scale)
yourSubView.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished){
// if you want to do something once the animation finishes, put it here
}];
4

1 に答える 1

2

複数のアニメーション化可能なプロパティを変更することで、アニメーションを組み合わせることができます。たとえば、yourSubView.alphaを設定してから、アニメーションブロック内のアルファを変更することもできます。スケールとアルファの変化を組み合わせます。

簡単な翻訳を行うには、アニメーションブロックでこれを試してください。

yourSubView.transform = CGAffineTransformTranslate(CGAffineTransformIdentity, 100.0, 100.0); 

これにより、xおよびy方向に100px移動するとともに、スケールをIDに戻す必要があります。

Core Animationの場合、この2つのCore AnimationをCAAnimationGroupでグループ化すると、1つのCABasicAnimationが実行されなくなります。CAAnimationGroupを使用して複数のアニメーションを組み合わせ、3D回転などのかなり凝った作業を行うことができます。

スケーリング:

CAKeyframeAnimation *scale = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];
[scale setValues:[NSArray arrayWithObjects:[NSNumber numberWithFloat:0.01f],[NSNumber numberWithFloat:1.0f],nil]];
[scale setKeyTimes:[NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],[NSNumber numberWithFloat:0.4f],nil]];

[mySubview.layer addAnimation:scale forKey:@"myScale"];
于 2012-08-27T19:48:16.547 に答える