iOS 13 狀態欄樣式、暗黑模式


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是無效的
 

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

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM