设置基于视图控制器的状态栏外观 = YES 时,StatusBar 不会调用 PreferredStatusBarStyle
Posted
技术标签:
【中文标题】设置基于视图控制器的状态栏外观 = YES 时,StatusBar 不会调用 PreferredStatusBarStyle【英文标题】:StatusBar ins't calling preferredStatusBarStyle when setting View controller-based status bar appearance = YES 【发布时间】:2017-06-04 22:07:11 【问题描述】:标题说明了一切。或者我理解 sdk 有什么非常错误的地方,或者苹果的 sdk 有什么问题。
当设置 (info.plist) 查看基于控制器的状态.. = YES,我可以通过调用 setNeedsStatusBarEtc 来隐藏我的状态栏动画等等...但是然后,我无法更改我的首选状态栏样式。当我将其设置为 NO 时,我可以更改样式,但不能更改其他所有内容。我该怎么办?怎么了?请帮忙!
当基于控制器的状态.. = YES
因此,在我的 ViewController 中,我创建了一个 statusBarHidden: Bool 并覆盖类 var: prefersStatusBarHidden: Bool、preferredStatusBarUpdateAnimation: Bool 和 preferredStatusBarStyle 来更改我的 statusBar。
var statusBarHidden = false
didSet
UIView.animate(withDuration: 0.3) () -> Void in
self.setNeedsStatusBarAppearanceUpdate()
但是,这段代码将只调用prefersStatusBarHidden 和preferredStatusBarUpdateAnimation,而不是preferredStatusBarStyle。 Whit controller-based status.. = NO,它被调用,但其他的不是。我只想要一个隐藏在一些 VC 中的 lightContent 状态栏..
已弃用的解决方案:
UIApplication.shared.isStatusBarHidden = true
但不能动画(至少我不能)
感谢@WillBoland
【问题讨论】:
请发布您的代码。 @BJHStudios 更新了! @Gehlen,请提供更多代码。很难理解你。 'l prefersStatusBarHidden 和 preferredStatusBarUpdateAnimation' - 你在哪里使用它? “不,它被称为。” - 这是什么意思?请让您的帖子更清晰。 @Vyacheslav 已更新! 查看此链接***.com/questions/41670828/… 【参考方案1】:根据this link,使用以下方法。
[[UIApplication sharedApplication] setStatusBarHidden:NO]
但它已被弃用。
【讨论】:
它可以工作,但除了被弃用之外,我也无法动画.. =( 啊,很抱歉。我会继续寻找。 我也是!谢谢!以上是关于设置基于视图控制器的状态栏外观 = YES 时,StatusBar 不会调用 PreferredStatusBarStyle的主要内容,如果未能解决你的问题,请参考以下文章
UIImagePickerController 打破状态栏的外观
无法使 SFSafariViewController 状态栏样式 lightContent