我想在我的iPhone应用程序中使用“全屏模式”,当用户按下按钮时,状态栏,导航栏和工具栏会在屏幕外设置动画(例如iOS 6中横向模式下Safari的全屏功能) 。我基本上是使用UIViewController作为顶视图控制器来显示UINavigationController。
我可以通过UIViewController执行此操作来隐藏元素:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
[self.navigationController setToolbarHidden:YES animated:YES];
[self.navigationController setNavigationBarHidden:YES animated:YES];
但是,动画不同步,内容的大小调整并不完全流畅。如果您使用Safari全屏功能,您可以看到动画非常流畅。关于如何通过完美动画实现这一目标的任何想法?
答案 0 :(得分:0)
您可以执行以下操作:
[UIView animateWithDuration:0.4 animations:^() {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[self.navigationController setToolbarHidden:YES animated:NO];
[self.navigationController setNavigationBarHidden:YES animated:NO];
self.yourView.frame = CGRectMake(0, 0, 320, 480); // If you have several views, set all their frames to 'fullscreen'
}];
您可以使用方法UIView animateWithDuration:( delay: options: animations:^(void)animations completion:^(BOOL finished)completion
来使用自定义动画,只需查看UIViewAnimationOptions
。