iOS 13系統的iPhone 在設置--》顯示與亮度 --》選擇深色 即開啟暗黑模式
1. 暗黑模式關閉
1.1 APP開發未進行暗黑適配,出現頂部狀態欄字體顏色無法改變始終為白色。可以全局關閉暗黑模式: 在 Info.plist 文件中,添加 key 為 User Interface Style
,類型為 String,value 設置為 Light
即可。

1.2在 iOS 13中,UIView、UIViewController 、UIWindow 有了一個 overrideUserInterfaceStyle 的新屬性,可以覆蓋系統的模式。
單個頁面或視圖關閉暗黑模式,設置 overrideUserInterfaceStyle 為對應的模式,強制限制該視圖與其子視圖以設置的模式進行展示,不跟隨系統模式改變進行改變。
1 self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
1.3 iOS 13 中UIStatusBarStyle的枚舉做了調整。
*之前開發的APP代碼中 UIStatusBarStyle 的部分樣式需要根據自需要修改
1 typedef NS_ENUM(NSInteger, UIStatusBarStyle) { 2 UIStatusBarStyleDefault = 0, // Automatically chooses light or dark content based on the user interface style 暗黑下淺色內容; 3 UIStatusBarStyleLightContent = 1, // Light content, for use on dark backgrounds 淺色內容,用於深色背景 4 UIStatusBarStyleDarkContent = 3, // Dark content, for use on light backgrounds 深色內容,用於淺色背景 5 };
2. 更狀態欄顏色方法
在info.plist文件中 View controller-based status bar appearance
-> YES,則控制器對狀態欄設置的優先級高於application
-> NO,則以application為准,控制器設置狀態欄prefersStatusBarHidden是無效的
-> YES,則控制器對狀態欄設置的優先級高於application
-> NO,則以application為准,控制器設置狀態欄prefersStatusBarHidden是無效的
2.1 View controller-based status bar appearance -> NO
1 //默認樣式 2 [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; 3 //隱藏 4 [UIApplication sharedApplication].statusBarHidden = YES;
2.2 View controller-based status bar appearance -> YES 或者info.plist文件中沒有設置
1 //設置樣式 2 - (UIStatusBarStyle)preferredStatusBarStyle { 3 return UIStatusBarStyleLightContent; 4 } 5 6 //設置是否隱藏 7 - (BOOL)prefersStatusBarHidden { 8 return NO; 9 } 10 11 //設置隱藏動畫 12 - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation { 13 return UIStatusBarAnimationNone; 14 }
3. 獲取狀態欄高度
1 [UIApplication sharedApplication].statusBarFrame.size.height