3

当我在导航中推动控制器时,我试图让基本的翻转动画过渡工作。下面的代码翻转视图,但是视图首先出现(每个元素淡入),然后发生翻转。是否可以使用 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();
    }
}
4

2 回答 2

4

我有点在那里,但需要从以下位置获取视图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();
于 2010-03-31T13:41:46.153 回答
0

我不是专家,但我想知道 PushViewcontroller 上的 TRUE 表示它将被动画化。这让我想知道这是否让 NavigationController 完成了最初的动画工作量,然后是你的。当您将其设置为 false 时,会发生什么?我知道我们倾向于不假思索地自动将 TRUE 放在那里。

于 2010-03-30T13:55:03.727 回答