2017-02-21 501 views
1

在我的應用程序中,有一個黑暗模式,我想知道如何更改狀態欄的顏色? 謝謝,更改狀態欄顏色Objective-C

UIColor *color = [UIColor whiteColor]; 
self.navigationController.navigationBar.barTintColor = color; 

回答

7

可以低於在AppDelegate.mdidFinishLaunchingWithOptions方法的代碼行可能有助於:

[application setStatusBarHidden:NO]; 

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"]; 

if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) { 

    statusBar.backgroundColor = [UIColor whiteColor];//set whatever color you like 
} 
+0

不這樣做,這是一個黑客,可能讓你的應用程序被拒絕使用私有的API就像一個魅力 – Dvole

+1

工作 –

0

夫特3溶液:
在需要非默認狀態欄外觀視圖控制器,使用這個:

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 
0

一個簡單而有效的方法是將屬性添加到info.plist並將狀態欄樣式設置爲UIStatusBarStyleLightContent

This works like a charm

我們應該做的是:

  • 首先打開info.plist文件的應用程序,然後添加屬性UIViewControllerBasedStatusBarAppearance,並將其值設置爲NO
  • 下一頁頭到您Appdelegate或任何類別文件並使用以下代碼:

    UIApplication.sharedApplication.statusBarStyle = UIStatusBarStyleLightContent; 
    

    另一種編寫代碼的方法是:

    [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleLightContent];