现在,当我从导航控制器堆栈弹出自定义视图控制器(带有动画:YES)时,它通常会向右滑动。我想让动画看起来与您推动控制器时相同(从右侧滑入),但仍具有流行而非推动的效果。我应该如何开始我的追求?这应该在viewWillAppear中完成吗?从导航堆栈弹出视图控制器时从右侧滑入
1
A
回答
1
我曾经做过一个视图的自定义动画,与此类似。至于入门,我会考虑the core animation framework。在Apple文档中,比您想要的更匹配的可能是UIView animations。
基本上,您将viewDidLoad
中的帧设置为离屏。然后在viewDidAppear
,你设置的框架是结束帧,但在这个代码把它包:
[UIView beginAnimations:@"animationsNameThisCanBeAnythingOrNil" context:nil]
//Reset the frame here
[UIView commitAnimations];
我希望这有助于!
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褪色为白色,因为它滑落。
相关问题
- 1. 尝试从导航堆栈弹出视图时声明失败
- 2. 不使用导航控制器时弹出视图控制器?
- 3. 弹出视图控制器关闭堆栈没有导航栏显示?
- 4. 如何从导航控制器中的视图控制器堆栈中获取特定的视图控制器?
- 5. 视图控制器如何知道它何时被解散或弹出导航控制器堆栈?
- 6. NSOperationQueue避免将视图控制器推入导航控制器堆栈?
- 7. 将多个视图控制器推入导航控制器堆栈的问题
- 8. 如何从导航控制器弹出当前视图?
- 9. 从导航控制器弹出多个视图
- 10. 有没有办法找出视图控制器是否从导航堆栈中弹出?
- 11. Xamarin.Forms棱镜从导航堆栈删除视图堆栈
- 12. 如何从导航堆栈中的任意位置弹出到任意视图控制器
- 13. 在segue期间从UINavigationController的导航堆栈中移除视图控制器?
- 14. Swift/iOS。从导航堆栈中删除几个视图控制器
- 15. 访问导航堆栈中的当前视图控制器
- 16. 重定向到导航堆栈中的新视图控制器
- 17. 显示已经在导航堆栈上的视图控制器
- 18. 从导航栏视图控制器导航到标签栏视图控制器
- 19. Iphone导航控制器删除堆栈
- 20. 将视图控制器推到ipad上的导航控制器堆栈前
- 21. 如何'弹出'到视图控制器不在堆栈上
- 22. Objective C--完成块和视图控制器被弹出堆栈
- 23. 从导航控制器弹出viewcontroller时键盘不会退出
- 24. 弹出视图控制器时更改导航栏颜色
- 25. 在哪里设置导航堆栈中的视图控制器导航项目
- 26. 将视图控制器从一个视图控制器移动到另一个视图控制器而无需导航控制器堆栈
- 27. iPhone释放模式视图控制器也弹出推控制器到堆栈?
- 28. Android ListView - 从右侧滑动子视图?
- 29. jquery从右侧滑出div
- 30. jPanelMenu - 从右侧滑入