CALayerのアニメーション終了コールバック?
-
03-07-2019 - |
質問
iPhone CALayerを使用して、スピリットレイヤーの回転アニメーションが必要ですが、アニメーション終了のコールバックも必要です。
CABasicAnimationを使用する必要があると思いますが、CABasicAnimationを使用して回転を行う方法がわかりませんか?
ありがとう
解決
CAAnimationのデリゲートを設定する場合、コールバックメソッドを追加できます。
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
アニメーションが完了すると呼び出されます。このリンクに従って、CGAffineTransform変換行列を介して回転アニメーションの例を探します:
http://iphonedevelopment.blogspot.com/2008/10/demystifying- cgaffinetransform.html
他のヒント
余談ですが、次のコードブロックで呼び出しをラップしてUIViewを回転させることにより、UIViewアニメーションに対して同じ種類のコールバックを行うこともできます
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(rotationAnimationHasFinished:finished:context:)];
// Rotate the view here
[UIView commitAnimations];
そしてデリゲートメソッドを定義
- (void)rotationAnimationHasFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context;
{
// Handle the completion of the animation
}
アニメーションの完了後に必要なことを行うデリゲート内。
所属していません StackOverflow