我正在使用这样的代码来呈现一个新的视图,我不知道它好不好。目前默认动画是从下往上显示视图,但我希望它从右到左动画(飞入),是否可以更改默认动画类型以及如何更改?谢谢。
[self presentModalViewController:navController animated:animated];
您可以像这样禁用上滑动画:
[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];
此示例为您提供了具有平滑速度曲线的右侧“飞入”。
另一种方法是使用带有导航控制器的右侧内置滑入:
[self.navigationController pushViewController:navController animated:YES];
在这一个中,您的 top-viewcontroller 需要是 UINavigationController 并且它的 rootcontroller 需要是您的 viewcontroller。然后你可以推送其他视图控制器。
我已经这样做了,它对我有用,试试看:
[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];