我正在使用这样的代码来呈现一个新视图,我不喜欢它。目前默认动画是从下到上显示视图,但我希望它从右到左动画(飞入),是否可以更改默认动画类型以及如何?感谢。
[self presentModalViewController:navController animated:animated];
答案 0 :(得分: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];
在这个中,你的top-viewcontroller需要是一个UINavigationController,它的rootcontroller需要是你的viewcontroller。然后你可以推送其他视图控制器。
答案 1 :(得分: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];