Iphone 同时隐藏/显示导航栏、工具栏和状态栏

Iphone 同时隐藏/显示导航栏、工具栏和状态栏,iphone,ios,uinavigationbar,uitoolbar,uistatusbar,Iphone,Ios,Uinavigationbar,Uitoolbar,Uistatusbar,我希望在我的iPhone应用程序中有一个全屏模式,当用户按下按钮时,状态栏、导航栏和工具栏会在屏幕外动画显示,就像iOS 6中横向模式下Safari的全屏功能一样。我基本上展示了一个UINavigationController,其中UIViewController作为俯视图控制器 我可以通过对UIViewController执行以下操作来隐藏元素: [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimatio

我希望在我的iPhone应用程序中有一个全屏模式,当用户按下按钮时,状态栏、导航栏和工具栏会在屏幕外动画显示,就像iOS 6中横向模式下Safari的全屏功能一样。我基本上展示了一个UINavigationController,其中UIViewController作为俯视图控制器

我可以通过对UIViewController执行以下操作来隐藏元素:

    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

    [self.navigationController setToolbarHidden:YES animated:YES];

    [self.navigationController setNavigationBarHidden:YES animated:YES];

但是,动画不同步,并且内容的大小调整也不是完全流畅的。如果使用Safari全屏功能,可以看到动画非常流畅。关于如何通过完美动画实现这一点,您有什么想法吗?

您可以执行以下操作:

[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:^voidanimations completion:^BOOL finishedcompletion,只需查看UIView AnimationOptions即可使用自定义动画。

感谢您的回复,但我并不希望看到这种解决方案。虽然它确实有助于将状态栏动画时间与其他2个同步,但它并没有使事情像我希望的那样流畅。很难描述这个问题,因为它是关于动画的,如果我感到绝望,我会开始发布我的动画和这个解决方案的视频。我也尝试过这个,不幸的是,事情的变化率并不完全匹配。类似。。