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