0

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

[self presentModalViewController:navController animated:animated];
4

2 回答 2

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];

此示例为您提供了具有平滑速度曲线的右侧“飞入”。

另一种方法是使用带有导航控制器的右侧内置滑入:

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

在这一个中,您的 top-viewcontroller 需要是 UINavigationController 并且它的 rootcontroller 需要是您的 viewcontroller。然后你可以推送其他视图控制器。

于 2012-06-23T14:49:14.657 回答
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];
于 2012-06-23T15:15:49.390 回答