iOS13暗黑模式適配參考


一.? 為什么要適配暗黑模式

1、可以幫助我們節(jié)省更多的電量纵诞。

這得益于 OLED 屏幕的發(fā)展忙干,與 LCD 不同 器予, OLED 能夠自發(fā)光,每個像素點都能發(fā)出紅綠藍三色光捐迫,而 LCD 則通過其背光層穿透有顏色的薄膜來發(fā)出不同的光乾翔。這樣在暗黑模式下,OLED 就具有天生的優(yōu)勢施戴,只需要關閉黑色區(qū)域的顯示反浓,就可以達到純黑效果,而 LCD 的背光層只能發(fā)射白光赞哗,所以在顯示黑色的時候雷则,仍然會有部分光透過顏色薄膜,無法達到純黑效果肪笋,只能達到相對黑的效果. 所以月劈,在如今使用 OLED 屏幕的手機上面度迂,開啟暗黑模式會大幅減少手機電量的消耗

2、為弱視以及對強光敏感的用戶提高可視性

3猜揪、讓所有人都可以在光線較暗的環(huán)境中更輕松地使用設備惭墓,保護視力

二.? 適配暗黑模式所需工作

? 1、適配 背景顏色而姐、文字顏色(需要UI提供顏色值)

? 2腊凶、替換圖標、圖片(需要UI配合切圖)

? 3拴念、在應用內為用戶提供切換主題的開關選項(可選)

三.? 圖標適配方法? (暫推薦 1種通用方法钧萍,需UI配合切圖)

1、在 Images.xcassets 中配置不同模式下的圖片


四.? 顏色值適配方法 (三種方法丈莺,推薦方法2 或 3)

1划煮、宏定義顏色值

// 暗黑模式 YES是

#define CKDarkMode @available(iOS 13.0, *) && UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark

// MARK: - 十六進制顏色

#define HexOf(rgbValue) Hex_A(rgbValue,1.0)

#define Hex_A(rgbValue,a) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:a]

// MARK: - 用全局變量設置背景、文字,可以優(yōu)雅的主題切換 (取全局唯一性的名稱,便于維護;最前面的優(yōu)先級最高)

#define Color_Bg ? ? ? CKDarkMode?HexOf(0x191C32):HexOf(0xf4f4f4)?//背景主題顏色 ? 黑色/白色

#define Color_ContView CKDarkMode?HexOf(0x1D213B):HexOf(0xffffff)?//內容缔俄、cell顏色 深藍色/白色 如果背景和cell顏色一樣,就都用這個

2、UIColor的拓展

+(UIColor *)ContViewColor{

? if (@available(iOS 13.0, *)) {

? ? ? UIColor *dyColor = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) {

? ? ? ? ? if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {

? ? ? ? ? ? ? return ColorA;

? ? ? ? ? }else {

? ? ? ? ? ? ? return ColorB;

? ? ? ? ? }

? ? ? }];

? ? ? return dyColor;

? }else{

? ? ? return ColorB;

? }

}

3器躏、在 Images.xcassets 中定義常用顏色俐载,跟使用圖片一樣噠

1.Dark模式變化后可以 界面顏色值會自動變化

2.在 Images.xcassets 中設置顏色和圖片是向下兼容的,iOS 13 以下的系統(tǒng)會默認取`Any`狀態(tài)下的設定登失,iOS 13 會根據(jù)系統(tǒng)模式取`Any`或`Dark`下的設定遏佣。

? ? ?

五.? UITraitCollection介紹

1、在 iOS 13 中揽浙,我們可以通過 UITraitCollection 來判斷當前系統(tǒng)的模式状婶。

2、另外馅巷,我們還可以通過 UITraitCollection.current這個屬性來獲取當前 App 的顏色模式膛虫。

3、在 iOS 13中钓猬,UIView稍刀、UIViewController 、UIWindow 有了一個 overrideUserInterfaceStyle的新屬性敞曹,可以覆蓋系統(tǒng)的模式账月。

六. 注意事項

1、 Status Bar 的 style

typedef NS_ENUM(NSInteger, UIStatusBarStyle) {

? UIStatusBarStyleDefault ? ? = 0, // Automatically chooses light or dark content based on the user interface style

? UIStatusBarStyleLightContent = 1, // Light content, for use on dark backgrounds

? UIStatusBarStyleDarkContent = 3, // Dark content, for use on light backgrounds

};

2.全局關閉暗黑模式 (偷懶要看產(chǎn)品&UI是否同意澳迫,哈哈局齿,可能過段時間蘋果就取消這種方式了 )

a.在Info.plist 文件中,添加UIUserInterfaceStyle?key 名字為?User Interface Style?值為String橄登,

b.將UIUserInterfaceStyle?key 的值設置為?Light

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末抓歼,一起剝皮案震驚了整個濱河市担平,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锭部,老刑警劉巖暂论,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拌禾,居然都是意外死亡取胎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門湃窍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闻蛀,“玉大人,你說我怎么就攤上這事您市【跬矗” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵茵休,是天一觀的道長薪棒。 經(jīng)常有香客問我,道長榕莺,這世上最難降的妖魔是什么俐芯? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮钉鸯,結果婚禮上吧史,老公的妹妹穿的比我還像新娘。我一直安慰自己唠雕,他們只是感情好贸营,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岩睁,像睡著了一般钞脂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笙僚,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天芳肌,我揣著相機與錄音,去河邊找鬼肋层。 笑死亿笤,一個胖子當著我的面吹牛,可吹牛的內容都是我干的栋猖。 我是一名探鬼主播净薛,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蒲拉!你這毒婦竟也來了肃拜?” 一聲冷哼從身側響起痴腌,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燃领,沒想到半個月后士聪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡猛蔽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年剥悟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曼库。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡区岗,死狀恐怖,靈堂內的尸體忽然破棺而出毁枯,到底是詐尸還是另有隱情慈缔,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布种玛,位于F島的核電站藐鹤,受9級特大地震影響,放射性物質發(fā)生泄漏蒂誉。R本人自食惡果不足惜教藻,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望右锨。 院中可真熱鬧,春花似錦碌秸、人聲如沸绍移。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹂窖。三九已至,卻和暖如春恩敌,著一層夾襖步出監(jiān)牢的瞬間瞬测,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工纠炮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留月趟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓恢口,卻偏偏與公主長得像孝宗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耕肩,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內容

  • 超級團購因妇,開啟副業(yè) 結緣愛購平臺问潭,不是偶然,而是我一直在尋找的方向婚被,在這互聯(lián)網(wǎng)+市場如火如荼的時代狡忙,實體經(jīng)濟日益艱...
    face05f01ecd閱讀 393評論 0 0
  • python進階 數(shù)據(jù)庫 概念 區(qū)別 MySQL mysql簡介 庫級和表級操作 庫級操作語句 表級操作語句 注意...
    modesty123閱讀 467評論 0 0
  • 秉承著把書讀薄的精神,我計劃用連續(xù)15篇文章來簡要的給大家介紹一下《人工智能導論》的核心內容址芯,每篇精讀文章將以思維...
    Khan可汗閱讀 1,811評論 1 3
  • 順風車的出現(xiàn)是需求灾茁,并且是乘客的需求,說白了順風車就是拼車是复。從這一點上來講删顶,順風車業(yè)務只要上線就一定有人用,因...
    羽天翔閱讀 119評論 0 0
  • 昨天試著用書中整合筆記提到的符號記錄了關于一款保險產(chǎn)品條款的學習淑廊,和之前相比逗余,增加了圓圈的提醒和叉叉表示的不足之處...
    倆果媽咪閱讀 225評論 0 0