我想在推视图控制器时显示一个自定义动画:我想实现类似于“展开”的动画,这意味着新视图从给定的矩形扩展,可以说[100,100 220,380]在动画期间全屏显示。推送一个UIViewController的自定义动画
任何建议,从哪里开始,分别是任何文档,教程,链接? :)
好的。我可以使动画扩展用下面的代码:正确显示
if ([coming.view superview] == nil)
[self.view addSubview:coming.view];
coming.view.frame = CGRectMake(160,160,0,0);
[UIView beginAnimations:@"frame" context:nil];
[UIView setAnimationDuration:4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[coming viewWillAppear:YES];
[going viewWillAppear:YES];
coming.view.frame = CGRectMake(0, 0, 320, 480);
[going viewDidDisappear:YES];
[coming viewDidAppear:YES];
[UIView commitAnimations];
我看来,可惜没有更新导航栏。有没有办法做到这一点手动?
在样本代码,一个函数被调用所有0.03秒,更新视图的变换。 不幸的是,当推UIViewController
时,我无法调整视图的框架...我是吗?
我已经尝试了这种方法,但问题在于,当您使用此推送时,第一个视图控制器会在下一个控制器启动动画之前消失。应该发生的事情是:1)下一个视图控制器动画,其视图完全覆盖旧的vc视图,然后弹出旧的vc。我正在编译的iOS 4.3,这是行不通的。 – SpaceDog 2012-10-05 10:47:21
这不可扩展。导航控制器应该处理动画。这是一个黑客,你必须为每个推送的视图控制器实施。 – 2014-01-20 03:39:06