Xcode 使查看全屏,隐藏状态栏,导航栏等

Posted

技术标签:

【中文标题】Xcode 使查看全屏,隐藏状态栏,导航栏等【英文标题】:Xcode make view full screen, hide Status bar, Nav Bar and etc 【发布时间】:2017-10-11 07:08:04 【问题描述】:

我有一个UIView,现在它是全屏的,但是上面漂浮着status barnavigation bartab bar等,如果用户点击设备,我想隐藏和显示所有这些栏.我的问题是我可能无法确定窗口中有多少条,有没有办法通过window 处理程序隐藏或显示所有现有的条,而不是一一隐藏。

现在我的代码如下:

@interface PdfViewController : UIViewController

BOOL _bounceBack;
BOOL _navigatioBarHidden;
BOOL _statusBarHidden;
IBOutlet UITapGestureRecognizer *_doubleTapRecognizer;
IBOutlet UITapGestureRecognizer *_singleTapRecognizer;
IBOutlet UINavigationBar *navigationBar;


- (IBAction)singleTap:(UITapGestureRecognizer *)sender 
NSLOGD_METADATAONLY();
_navigatioBarHidden = (_navigatioBarHidden)? NO: YES;
navigationBar.hidden = _navigatioBarHidden;
_statusBarHidden = (_statusBarHidden)? NO : YES;
[self setNeedsStatusBarAppearanceUpdate];
[sender requireGestureRecognizerToFail:_doubleTapRecognizer];

【问题讨论】:

使用 Objective-C 显示你尝试过的代码, 你想隐藏singleTap点击上的所有栏吗? 是的!单击时再次显示! 【参考方案1】:

试试这个

您需要在视图控制器中实现 prefersStatusBarHidden 方法

 - (BOOL)prefersStatusBarHidden

    // If self.statusBarHidden is TRUE, return YES. If FALSE, return NO.
    return (self.statusBarHidden) ? YES : NO;

然后,在您的按钮单击方法中:或使用您的选择器进行更改

- (void)clickonView:(id)sender

    self.statusBarHidden = !self.statusBarHidden
    [self.navigationController setNavigationBarHidden:self.statusBarHidden animated:YES];

    // Update the status bar
    [UIView animateWithDuration:0.25 animations:^
        [self setNeedsStatusBarAppearanceUpdate];
    ];

【讨论】:

导航栏运行良好,但单击屏幕时状态栏仍显示在屏幕上。

以上是关于Xcode 使查看全屏,隐藏状态栏,导航栏等的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏 SpriteKit 游戏的状态栏? [复制]

导航栏隐藏XCode时状态栏更改色调颜色

Default.png 显示在状态栏区域下方,想要使其全屏显示

Android基础篇 显示隐藏状态栏和导航栏

UIScrollView 在导航和状态栏下方移动

Android - 为带有导航抽屉和应用栏的应用完全隐藏状态和导航栏