从导航堆栈弹出视图控制器时从右侧滑入

时间:2011-02-02 22:10:58

标签: iphone ios

现在,当我从导航控制器堆栈中弹出一个自定义视图控制器(带有动画:是)时,它会向右滑动。我希望动画看起来与推动控制器时相同(从右侧滑入),但仍然是弹出而不是推动的效果。我该如何开始我的任务?应该在viewWillAppear?

中完成

2 个答案:

答案 0 :(得分:1)

我曾经做过一个视图的自定义动画,类似于此。至于入门,我会调查the core animation framework。对于您想要的内容,可以在Apple文档中UIView animations进行更好的匹配。

基本上,您将viewDidLoad中的帧设置为屏幕外。然后在viewDidAppear中,将帧设置为结束帧,但将其包装在此代码中:

[UIView beginAnimations:@"animationsNameThisCanBeAnythingOrNil" context:nil]
//Reset the frame here
[UIView commitAnimations];

我希望这有帮助!

答案 1 :(得分:0)

以防它帮助某人,这是我用来完成所要求的代码:

CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
[[self.navigationController.view layer] addAnimation:animation forKey:nil];
[self.navigationController popViewControllerAnimated:NO];

您可能希望确保您正在弹出的基础UIView具有清晰的背景,否则当您弹出时,您会看到旧的UIView在滑落时淡入白色。