A implementação de um callback CAKeyFrameAnimation no MonoTouch no final de um conjunto de animação?
-
19-09-2019 - |
Pergunta
As minhas obras de código e eu animado, mas eu não tenho certeza de como fazer isso:
Animação End Callback para CALayer?
... no MonoTouch.
Aqui está o que eu tenho:
public partial class MyCustomView: UIView
{
// Code Code Code
private void RunAnimation()
{
CAKeyFrameAnimation pathAnimation = new CAKeyFrameAnimation();
pathAnimation.KeyPath = "position";
pathAnimation.Path = trail; //A collection of PointFs
pathAnimation.Duration = playbackSpeed;
Character.Layer.AddAnimation(pathAnimation,"MoveCharacter");
}
//Code Code Code
}
MyCustomView já está herdando de UIView e eu não pode herdar de duas classes. Como eu chamaria uma função chamada "AnimationsComplete ()" quando isso é feito de animação?
Solução
Eu não estou na frente da minha máquina de dev, mas acho que você criar um descendente classe de CAAnimationDelegate, implementar o "vazio AnimationStopped (anim CAAnimation, bool acabado) Método" e depois atribuir uma instância dessa classe para pathAnimation. delegado (em sua amostra).
Assim, algo como isto ( alerta - código não testado ):
public partial class MyCustomView: UIView
{
private void RunAnimation()
{
CAKeyFrameAnimation pathAnimation = new CAKeyFrameAnimation();
// More code.
pathAnimation.Delegate = new MyCustomViewDelegate();
}
}
public class MyCustomViewDelegate : CAAnimationDelegate
{
public void AnimationStopped(CAAnimation anim, bool finished)
{
// More code.
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow