2010-02-08 6 views
1

내 코드 작품과 내가 애니메이션, 그러나 나는이 작업을 수행하는 방법을 잘 모르겠어요 :애니메이션 세트의 끝에 MonoTouch에서 CAKeyFrameAnimation 콜백을 구현 하시겠습니까?

Animation End Callback for 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에서 상속 나는 두 클래스에서 상속 할 수 없습니다. 이 애니메이션이 완료되면 어떻게 "AnimationsComplete()"라는 함수를 호출할까요?

답변

4

나는 내 dev에 기계 앞에 아니에요,하지만 난 당신이, CAAnimationDelegate에서 하강하는 클래스를 생성 구현 생각 "무효 AnimationStopped (CAAnimation의 ANIM을, 부울 완료) 방법"다음 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. 
    } 
} 
+0

가 좋아,이 상황을 제대로 설명하지 않는 내 잘못이다. 문제는 이미 두 클래스에서 상속 할 수 없도록 UIView에서 상속받은 클래스입니다. 내 질문을 업데이트 할게. – Abel

+1

나는 이것이 중요 할 것이라고 생각하지 않는다. CAAnimationDelegate는 * separate * 클래스입니다. 따라서 MyCustomView 및 MyCustomViewDelegate 클래스를 갖게됩니다. 그런 다음 RunAnimation()에서 pathAnimation.Delegate = new MyCustomViewDelegate(); (예를 들어). – dommer

+0

당신이 맞습니다. 도와 주셔서 감사합니다! – Abel

관련 문제