gpt4 book ai didi

objective-c - 如何以编程方式更改 PreferredStatusBarStyle

转载 作者:行者123 更新时间:2023-12-01 16:54:17 25 4
gpt4 key购买 nike

我想通过按下按钮将状态栏的颜色从白色更改为黑色,仅在单个 ViewController 中以编程方式

这是代码:

- (UIStatusBarStyle)preferredStatusBarStyle {
NSLog(@"PreferredStatusBarStyle");
if(nav_bar.alpha==1)
{
NSLog(@"->UIStatusBarStyleBlackOpaque");
return UIStatusBarStyleBlackOpaque;
}
else
{
NSLog(@"->UIStatusBarStyleLightContent");
return UIStatusBarStyleLightContent;
}}

那么当我按下按钮时,操作是:

[self setNeedsStatusBarAppearanceUpdate];

但是这不起作用!

当我按下按钮时,根据 navbar.alpha 写入正确的状态,但状态栏文本颜色仍保持 UIStatusBarStyleBlackOpaque,就像 View 出现时一样。

最佳答案

setStatusBarStyle:animated: 已被弃用。在 iOS9 中,您可以使用 preferredStatusBarStylesetNeedsStatusBarAppearanceUpdate 实现相同的效果。

在你的 View Controller 中:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
if (condition) {
return .LightContent
}

return .Default
}

然后当您的情况发生变化时:

self.setNeedsStatusBarAppearanceUpdate()

关于objective-c - 如何以编程方式更改 PreferredStatusBarStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20548096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com