アニメーションセットの終わりにMonoTouchで中CAKeyFrameAnimationコールバックを実装しますか?

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

質問

私のコードは動作し、私はアニメーションが、私はこれを行う方法がわからないんだけどます:

CALayerのためのアニメーションの終了コールバックですか

... MonoTouchでインチ

ここで私が持っているものです。

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から継承していると私は2つのクラスから継承することはできません。私はと呼ばれる関数を呼び出す方法「AnimationsComplete()」これはアニメーション行われたときに?

役に立ちましたか?

解決

実装し、私は私のdevのマシンの前にないんだけど、私はあなたがCAAnimationDelegateから下降するクラスを作成すると思いますpathAnimationに、このクラスのインスタンスを割り当て、その後「空隙AnimationStopped方法を(CAAnimationのアニメーションを、ブール値が終了)」と。 (あなたのサンプル中の)委任ます。

だから、このような何か(の警告 - 未テストコードの):

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