Реализация обратного вызова CAKeyFrameAnimation в MonoTouch в конце набора анимации?
-
19-09-2019 - |
Вопрос
Мой код работает, и я анимирую, но я не знаю, как это сделать:
Обратный вызов завершения анимации для 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.
}
}
Не связан с StackOverflow