YBImageBrowser icon indicating copy to clipboard operation
YBImageBrowser copied to clipboard

IOS13设置shouldHideStatusBar 不能自动隐藏状态栏

Open wangchao2010 opened this issue 4 years ago • 5 comments

Description

Environment

  • YBImageBrowser version:
  • iOS version:

wangchao2010 avatar Oct 11 '19 01:10 wangchao2010

@wangchao2010 在YBImageBrowser文件将hideStatusBar方法里的代码改成 [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES]; 就能隐藏,虽然弃用了但还是有效的,还有别忘了info.plist文件View controller-based status bar appearance也设置为NO

1046996647 avatar Nov 26 '19 02:11 1046996647

@1046996647 还要在showStatusBar里面添加下面代码 还原回去

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];

Gu4uG avatar Nov 28 '19 08:11 Gu4uG

的确存在这个问题

Pineapple8662 avatar Dec 06 '19 09:12 Pineapple8662

info.plist文件View controller-based status bar appearance也设置为NO。但是这也导致- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; }失效。

TML007 avatar Jan 15 '20 02:01 TML007

若是通过: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; }

xbindai avatar Jul 26 '22 04:07 xbindai