[英]Set the status bar to black colour
對於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)
狀態欄具有透明背景。 沒有辦法改變這一點。 您可以將其下方的視圖固定為背景。
簡易解決方案
轉到主故事板(應用程序啟動時,在啟動完成后加載的那個),並將頂級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.