【问题标题】:How to change StatusBar style in Objective-C (iOS 8)?如何在 Objective-C (iOS 8) 中更改 StatusBar 样式?
【发布时间】:2015-06-15 11:03:08
【问题描述】:

我想更改 StatusBarStyle,我使用的是preferredStatusBarStyle 方法,并且还在 plist 中添加了“基于控制器的状态栏外观”是 YES,但我不知道,为什么不工作? 我提到了以下步骤:

步骤:1

// preferredStatusBarStyle Method

    -(UIStatusBarStyle)preferredStatusBarStyle
    {
        CGRect screenRect = [[UIScreen mainScreen] bounds];
        CGFloat SW = screenRect.size.width;
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

        UIView *statusView=[[UIView alloc]initWithFrame:CGRectMake(0, 0,SW,20)];
        statusView.backgroundColor=[UIColor blackColor];
        [self.view addSubview:statusView];
        return UIStatusBarStyleLightContent;
    }

步骤:2

//添加plist

查看基于控制器的状态栏外观="YES"

步骤:3

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self preferredStatusBarStyle];
 }

请给我建议。

【问题讨论】:

  • 您在使用导航控制器吗?那就看看答案here
  • 您需要为基于视图控制器的状态栏外观设置 NO
  • [self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];
  • 您想在哪里验证 Plist 的状态。?

标签: ios objective-c iphone ios8


【解决方案1】:

没有直接改变状态栏颜色的方法。我们可以使用“setStatusBarStyle”属性选择状态栏样式,并在三种可用样式中进行选择——

UIStatusBarStyleDefault
UIStatusBarStyleBlackTranslucent
UIStatusBarStyleBlackOpaque

但是,如果你想改变状态栏的颜色,有一个技巧可以做到这一点——

更改 UIWindow 对象的背景颜色。并将状态栏样式设置为“UIStatusBarStyleBlackTranslucent”。这会将状态栏的颜色设置为与窗口的背景颜色相同。

将以下代码添加到您的 AppDeligate.m 文件中的 applicationDidFinishLaunchingWithOptions –

self.window.backgroundColor = [UIColor colorWithRed:0.78f green:0.13f blue:0.11f alpha:1];
[application setStatusBarStyle:UIStatusBarStyleBlackTranslucent];

或查看以下教程以自定义您的状态栏 appcoda

【讨论】:

    猜你喜欢
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2012-12-19
    • 1970-01-01
    • 2017-06-09
    • 2014-02-09
    相关资源
    最近更新 更多