【问题标题】:Hide/Show navigationbar, toolbar, and status bar at the same time同时隐藏/显示导航栏、工具栏和状态栏
【发布时间】:2012-10-14 20:09:59
【问题描述】:

我希望在我的 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 全屏功能,您会看到动画非常流畅。关于如何通过完美的动画实现这一点的任何想法?

【问题讨论】:

标签: iphone ios uinavigationbar uitoolbar uistatusbar


【解决方案1】:

您可以执行以下操作:

[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

【讨论】:

  • 感谢您的回复,但该解决方案并不是我想要的。虽然它确实有助于将状态栏动画时间与其他 2 同步,但它并没有让事情变得像我想要的那样流畅。很难描述这个问题,因为它是关于动画的,如果我绝望了,我会开始发布我的动画和这个解决方案的视频。
  • 我也试过这个,不幸的是事情变化的速度并不完全匹配。
猜你喜欢
  • 1970-01-01
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多