代码之家  ›  专栏  ›  技术社区  ›  Chris S

与Navigationcontroller.PushViewcontroller开始交互和委托

  •  3
  • Chris S  · 技术社区  · 15 年前

    当我在导航中按下一个控制器时,我正在尝试一个基本的翻转动画转换。下面的代码将翻转视图,但是视图将首先显示(每个元素都将淡入),然后再翻转。是否可以使用uinavigationcontroller制作翻转动画?

    任何指针都很好,我为monotouch找到的例子是在另一个视图中的视图上执行动画。

    void ToolbarButtonClick()
    {
        InformationController controller = new InformationController();
        NavigationController.PushViewController(controller,true);
    }
    
    public class InformationController : UIViewController
    {
        public override void ViewDidLoad ()
        {
            UIView.BeginAnimations("Flip");
            UIView.SetAnimationDuration(1.0);
            UIView.SetAnimationTransition(UIViewAnimationTransition.FlipFromRight,View,true);
    
            base.ViewDidLoad ();
            Title = "Information";
        }
    
        public override void ViewWillAppear (bool animated)
        {
            base.ViewWillAppear (animated);
        }
    
        public override void ViewDidAppear (bool animated)
        {
            base.ViewDidAppear (animated);
            UIView.CommitAnimations();
        }
    }
    
    2 回复  |  直到 13 年前
        1
  •  4
  •   bzlm    13 年前

    我在那里,但我需要从 NavigationController :

    // Push the controller first or the Title doesn't animate
    NavigationController.PushViewController(controller,false);
    
    UIView.BeginAnimations(null,IntPtr.Zero);
    UIView.SetAnimationDuration(1);
    UIView.SetAnimationTransition(UIViewAnimationTransition.FlipFromLeft,
                                  NavigationController.View,true);
    UIView.CommitAnimations();
    
        2
  •  0
  •   Driss Zouak    15 年前

    我不是专家,但我想知道pushviewcontroller上的情况,这表明它将被动画化。我想知道这是否使导航控制器完成了最初的动画工作,然后是您的动画工作。当设置为false时,会发生什么情况?我知道我们会不假思索地把真相写进去。

    推荐文章