2012-06-23 73 views
0

我正在使用这样的代码来呈现一个新的视图,我不好或不好。目前默认动画是从下向上显示视图,但我希望它从右到左(飞入)动画,是否可以更改默认动画类型以及如何?谢谢。iphone dev:如何控制视图过渡动画?

[self presentModalViewController:navController animated:animated]; 

回答

1

您可以禁用滑动画这样的:

[self presentModalViewController:navController animated:NO]; 

然后你可以提供自己的动画代码:

navController.view.frame = CGRectMake(320, 0, navController.view.frame.size.width, navController.view.frame.size.height); 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
navController.view.frame = CGRectMake(0, 0, navController.view.frame.size.width, navController.view.frame.size.height); 
[UIView commitAnimations]; 

这个例子给你“飞入“从正确的速度曲线。

另一种方法是使用内置的幻灯片,从右侧与navigationcontroller:

[self.navigationController pushViewController:navController animated:YES]; 

在这其中,你的顶视图控制器需要有一个UINavigationController,它的rootcontroller必须是你的ViewController。然后你可以推动其他视图控制器。

+0

感谢大家好,但我想知道的是最有效使用从右到左飞的iPhone应用程序,是它提供的功能的系统呢? –

+0

是的,将编辑答案 – JulenissensHjelper

+0

谢谢我正在尝试。 –

0

我已经这样做了,其工作对我来说尝试的部份:

[UIView beginAnimations:nil context:nil]; 
      [UIView setAnimationDuration:0.6]; 
      [UIView setAnimationDelegate:self]; 
      [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.View2.superview cache:YES]; 
      [self.View2 removeFromSuperview]; 
      [self performSelector:@selector(replaceViews2) withObject:nil afterDelay:0.6]; 
      [UIView commitAnimations];