YBImageBrowser
YBImageBrowser copied to clipboard
IOS13设置shouldHideStatusBar 不能自动隐藏状态栏
Description
Environment
- YBImageBrowser version:
- iOS version:
@wangchao2010 在YBImageBrowser文件将hideStatusBar方法里的代码改成 [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES]; 就能隐藏,虽然弃用了但还是有效的,还有别忘了info.plist文件View controller-based status bar appearance也设置为NO
@1046996647 还要在showStatusBar里面添加下面代码 还原回去
[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
的确存在这个问题
info.plist文件View controller-based status bar appearance也设置为NO。但是这也导致- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; }失效。
若是通过:View controller-based status bar appearance设置为NO的方法,会导致状态栏的style不受单个界面控制 此处提供另外一种方法,显示/隐藏状态栏。 期望:YBImageBrowser显示,状态栏隐藏;YBImageBrowser消失,状态栏显示。
首先在根控制器里交出statusBar的控制权,让子控制器接管statusBar
- (UIViewController *)childViewControllerForStatusBarHidden { return ((xBaseNavVC *)self.tabBarVC.selectedViewController).topViewController; }
接下来: 1、遵循<YBImageBrowserDelegate> 代理 2、实现代理
- (void)yb_imageBrowser:(YBImageBrowser *)imageBrowser beginTransitioningWithIsShow:(BOOL)isShow { self.isHiddenStatusBar = isShow; [self setNeedsStatusBarAppearanceUpdate]; }
3、调用状态显、隐方法(调此方法一定要实现把状态栏的控制交给子控制器)
- (BOOL)prefersStatusBarHidden { return self.isHiddenStatusBar; }