使用 NavigationController.PushViewController 的 BeginAnimations 和 CommitAnimations

Posted

技术标签:

【中文标题】使用 NavigationController.PushViewController 的 BeginAnimations 和 CommitAnimations【英文标题】:BeginAnimations and CommitAnimations with NavigationController.PushViewController 【发布时间】:2010-03-28 12:49:45 【问题描述】:

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

【问题讨论】:

【参考方案1】:

我在那儿,但需要从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】:

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

【讨论】:

如果我删除 TRUE,则根本不会发生动画

以上是关于使用 NavigationController.PushViewController 的 BeginAnimations 和 CommitAnimations的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)