UIImageView
ビューにアニメーションを実行するが含まれているビューコントローラがあります。
//AnimationViewController::ViewDidLoad event:
var ctlAnimations = new UIImageView();
ctlAnimations.AnimationImages = list.ToArray(); //<--list contains the UIImages
ctlAnimations.AnimationDuration = 1.0 * list.Count;
ctlAnimations.StartAnimating();
this.Add(ctlAnimations);
これは完全に機能します。AnimationViewController
ナビゲーションスタックをプッシュすると、が表示されてアニメーション化されますUIImage
。
しかし今、私AnimationViewController
はカスタムアニメーショントランジションで表示する必要があります:
var transition = CATransition.CreateAnimation ();
transition.Duration = 0.3f;
transition.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut);
transition.Type = CATransition.TransitionFade;
this.View.Layer.AddAnimation (transition, "fade");
//viewController is being pushed with animated=false, because we have a custom animation
base.PushViewController (viewController, false);
this.View.Layer.RemoveAnimation("fade");
これは、指定されたカスタムアニメーションを使用して新しいビューが所定の位置に遷移するという点でも、完全に機能します。
しかし、アニメーション化されたトランジションを使用AnimationViewController
してスタックにプッシュすると、表示されますが、アニメーションは実行されません。代わりに、アニメーションの最初のフレーム(リストの最初の画像)が表示され、実行されません。
したがって、移行に関する何かがUIImage
、新しいView Controllerでアニメーション化する機能を壊しているのですが、私はそれに対して何をすべきかを単純に理解できません。
更新:NavigationControllerの戻るボタンをタップした後、戻るボタンから離れて離すと(実際には戻らないように)、アニメーションの再生が開始されることに気付きました。