簡體   English   中英

將狀態欄設置為黑色

[英]Set the status bar to black colour

我想將status bar的顏色(顯示時鍾和電池的頂部的小條帶)設置為帶有白色文本的黑色背景。 我怎樣才能做到這一點 ?

在此輸入圖像描述

到目前為止我的方法:

我在info.plist添加了以下內容

View controller-based status bar appearance --> NO

並在viewController

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleDefault;
}

但是,風格不會改變。 如何使狀態欄變黑?

對於Xcode 8 / iOS 10 / Swift 3:

通過在狀態欄下添加彩色UIView,在一個視圖上臨時更改狀態欄背景顏色。 我將這些行放在viewWillAppear() 我的色調是白色的,透明度為45%,但您可以放入任何不透明或透明的UIColor值。

let statusView = UIView(frame: CGRect(x: 0, y: 0, width:     self.view.bounds.width, height: 20))
statusView.backgroundColor = UIColor.white.withAlphaComponent(0.45)
 self.view.addSubview(statusView)

如果視圖上有導航控制器,則可以將statusView添加到navigationController而不是視圖。

您還可以傳入UIScreen.main.bounds.size.width作為模擬狀態欄背景視圖的寬度。 不要硬編碼寬度,否則它不適合所有設備。

或者,您也可以使用此代碼更改整個應用中的狀態欄背景。 請注意,即使放在viewWillAppear() ,而不是viewDidLoad() ,當您向前/向后導航時,其他視圖仍將采用更改后的狀態欄。

let statWindow = UIApplication.shared.value(forKey:"statusBarWindow") as! UIView
let statusBar = statWindow.subviews[0] as UIView
statusBar.backgroundColor = UIColor.white.withAlphaComponent(0.45)

您可以通過調用以下方式將文本設為白色

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)

狀態欄具有透明背景。 沒有辦法改變這一點。 您可以將其下方的視圖固定為背景。

你需要在Xcode-8.1和iOS 10中遵循3個步驟:

在此輸入圖像描述

在此輸入圖像描述

在此輸入圖像描述

最后我們可以得到理想的結果:

在此輸入圖像描述

簡易解決方案

轉到主故事板(應用程序啟動時,在啟動完成后加載的那個),並將頂級UIView的背景顏色更改為黑色。

如果您需要屏幕的其余部分具有另一個彩色背景,只需創建另一個UIView作為頂級視圖的子視圖,將其框架設置為從頂部布局指南下方開始,並將其顏色設置為您需要的任何顏色。

您仍然需要設置其他答案中提到的plist標志。

轉到Plist文件

a) Set the value "View controller-based status bar appearance" to NO
b) Set the value "Status bar style" to UIStatusBarStyleLightContent 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(version)  ([[[UIDevice currentDevice] systemVersion] compare:version options:NSNumericSearch] != NSOrderedAscending)

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
    {
        UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)];
        view.backgroundColor=[UIColor blackColor];
        [self.window.rootViewController.view addSubview:view];
    }
    return YES;
}

它為我修復了狀態欄顏色。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM