Xcode 使查看全屏,隐藏状态栏,导航栏等
Posted
技术标签:
【中文标题】Xcode 使查看全屏,隐藏状态栏,导航栏等【英文标题】:Xcode make view full screen, hide Status bar, Nav Bar and etc 【发布时间】:2017-10-11 07:08:04 【问题描述】:我有一个UIView
,现在它是全屏的,但是上面漂浮着status bar
、navigation bar
、tab 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 使查看全屏,隐藏状态栏,导航栏等的主要内容,如果未能解决你的问题,请参考以下文章