Реализация обратного вызова CAKeyFrameAnimation в MonoTouch в конце набора анимации?

StackOverflow https://stackoverflow.com/questions/2219965

Вопрос

Мой код работает, и я анимирую, но я не знаю, как это сделать:

Обратный вызов завершения анимации для CALayer?

...в МоноТач.

Вот что у меня есть:

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 уже наследуется от UIView, и я не могу наследовать от двух классов.Как мне вызвать функцию AnimationsComplete(), когда анимация завершена?

Это было полезно?

Решение

Я не нахожусь перед своей машиной разработки, но я думаю, что вы создаете класс, унаследованный от CAAnimationDelegate, реализуете метод «void AnimationStopped(CAAnimation anim, bool Finished)», а затем назначаете экземпляр этого класса pathAnimation.Delegate (в ваш образец).

Итак, что-то вроде этого(предупреждение - непроверенный код):

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.
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top