Change the status bar background color color past iOS 7

前端 未结 8 1212
既然无缘
既然无缘 2020-12-30 04:02

I want to change background color of status bar on iOS 7, and I\'m using this code:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOp         


        
相关标签:
8条回答
  • 2020-12-30 04:34

    for what @Teja Kumar Bethina provided is helpful, but it's better to get the height of the statusBar from UIApplication singleton like below:

    UIApplication *app = [UIApplication sharedApplication];
    
    UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -app.statusBarFrame.size.height, self.view.bounds.size.width, app.statusBarFrame.size.height)];
        statusBarView.backgroundColor = [UIColor blackColor];
    
    0 讨论(0)
  • 2020-12-30 04:36

    Objective c

    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    
        [[UIApplication sharedApplication] setStatusBarHidden:false];
        UIView *statusBar=[[UIApplication sharedApplication] valueForKey:@"statusBar"];
        statusBar.backgroundColor = [UIColor redColor];
    
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    
    
    
        return YES;
    }
    

    This is working for me. I hope this will help you too.

    0 讨论(0)
  • 2020-12-30 04:39

    Call this function from ViewDidLoad passing with your status bar color.

    func setStatusBarBackgroundColor(color: UIColor)  
    {
        guard  let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView 
        else 
        {
        return
        }
        statusBar.backgroundColor = color
    }
    

    Hope It'll help.

    0 讨论(0)
  • 2020-12-30 04:46

    Here's a swift solution that uses auto layout, If your application is in portrait or landscape the bar will be the correct width. It's added to the navigation bar view as a subview hence it's offset by -20. You could add it to your navigationbar's parent view, and then the offset is not required. This example will also set the colour to be the same as the navigation bar.

    Hope that helps :)

        // Add colored opaque view behind the status bar view
        let statusBarView = UIView()
        statusBarView.backgroundColor = navigationBar.backgroundColor
        statusBarView.translatesAutoresizingMaskIntoConstraints = false
        navigationBar.addSubview(statusBarView)
    
        let views = ["statusBarView": statusBarView]
        let hConstraint = "H:|-0-[statusBarView]-0-|"
        let vConstraint = "V:|-(-20)-[statusBarView(20)]"
    
        var allConstraints = NSLayoutConstraint.constraintsWithVisualFormat(hConstraint,
                options: [], metrics: nil, views: views)
    
        allConstraints += NSLayoutConstraint.constraintsWithVisualFormat(vConstraint,
                options: [], metrics: nil, views: views)
    
        NSLayoutConstraint.activateConstraints(allConstraints)
    
    0 讨论(0)
  • 2020-12-30 04:46

    if your application is navigation based then you can set status bar background color red like this:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
    

    may it will help.

    0 讨论(0)
  • 2020-12-30 04:47

    in AppDelegate use

        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    

    and in project info.plist file

    set flag NO to View controller-based status bar appearance in app.

    0 讨论(0)
提交回复
热议问题