使用 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有三种方式(不使用,动态使用,静态使用,默认是动态使用)