La implementación de una devolución de llamada CAKeyFrameAnimation en MonoTouch al final de un juego de animación?
-
19-09-2019 - |
Pregunta
Mi código funciona y me animan, pero no estoy seguro de cómo hacer esto:
Animación Fin de devolución de llamada para CALayer?
... en MonoTouch.
Esto es lo que tengo:
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 ya está heredando de UIView y no puede heredar de dos clases. ¿Cómo iba a llamar a una función llamada "AnimationsComplete ()" cuando se hace la animación?
Solución
No estoy frente a mi máquina dev, pero creo que se crea una clase que desciende de CAAnimationDelegate, poner en práctica el "vacío AnimationStopped (anim CAAnimation, bool terminado) Método" y luego asignar una instancia de esta clase para pathAnimation. delegado (en la muestra).
Por lo tanto, algo como esto ( Advertencia - código no probado ):
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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow