iOS—暗黑模式

從iOS13推出以后,暗黑模式難免成為一個熱點的話題氧枣,特別是微信新版本更新支持暗黑模式以后沐兵,相信iOS開發(fā)者都有必要掌握如何在自己的項目中支持它。

適配暗黑模式主要從以下幾個方面著手:
  • 顏色

  • 圖片

1便监、顏色適配

  • iOS13 之前 UIColor只能表示一種顏色扎谎,而從 iOS13 開始UIColor是一個動態(tài)的顏色碳想,在Light Mode和Dark Mode可以分別設置不同的顏色。

  • iOS13系統(tǒng)提供了一些動態(tài)顏色毁靶,不過日常開發(fā)中胧奔,我們很少用到系統(tǒng)的顏色。比如說placeholderTextColor预吆,就可以使用[UIColor placeholderTextColor]直接表示輸入框提示文字顏色龙填,系統(tǒng)會根據(jù)當前的模式自動切換。

自定義動態(tài)UIColor

iOS13 UIColor增加了兩個初始化方法拐叉,使用以下方法可以創(chuàng)建動態(tài)UIColor

注:一個是類方法岩遗,一個是實例方法


+(UIColor*)colorWithDynamicProvider:(UIColor*(^)(UITraitCollection*))dynamicProviderAPI_AVAILABLE(ios(13.0),tvos(13.0))API_UNAVAILABLE(watchos);
-(UIColor*)initWithDynamicProvider:(UIColor*(^)(UITraitCollection*))dynamicProviderAPI_AVAILABLE(ios(13.0),tvos(13.0))API_UNAVAILABLE(watchos);

  • 這兩個方法要求傳一個block進去

  • 當系統(tǒng)在LightMode和DarkMode之間相互切換時就會觸發(fā)此回調(diào)

  • 這個block會返回一個UITraitCollection類

  • 我們需要使用其屬性userInterfaceStyle,它是一個枚舉類型巷嚣,會告訴我們當前是LightMode還是DarkMode

使用方法

        label.textColor=UIColor.init(dynamicProvider: { (trait) ->UIColor **in**

            **if **trait.userInterfaceStyle== .light {

                **return **UIColor.black

            }

            **return **UIColor.white

        })


        self.view.backgroundColor=UIColor.init(dynamicProvider: { (trait) ->UIColor in

            if trait.userInterfaceStyle== .dark {

                returnUIColor.black

            }

            **return**UIColor.white

        })

效果
image
image

2喘先、圖片適配

  • 打開Assets.xcassets

  • 新建一個Image set

  • 打開右側(cè)工具欄,點擊最后一欄廷粒,找到Appearances窘拯,選擇Any,Dark坝茎,如圖

image

*使用該圖片


[_logoImage setImage:[UIImage imageNamed:@"icon_logo"]];

image
image

獲取當前系統(tǒng)模式

如果需要知道當前處于什么模式涤姊,并根據(jù)不同的模式執(zhí)行不同的操作,iOS13中CGColor依然只能表示單一的顏色嗤放,通過調(diào)用UITraitCollection.currentTraitCollection.userInterfaceStyle思喊,獲取當前模式


      if UITraitCollection.current.userInterfaceStyle == .dark {

          print("當前為深色模式")

      }else{

          print("當前為淺色模式")

      }

希望對您有所幫助。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末次酌,一起剝皮案震驚了整個濱河市恨课,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌岳服,老刑警劉巖剂公,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吊宋,居然都是意外死亡纲辽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門璃搜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拖吼,“玉大人,你說我怎么就攤上這事这吻〉醯担” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵唾糯,是天一觀的道長籍铁。 經(jīng)常有香客問我涡上,道長,這世上最難降的妖魔是什么拒名? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任吩愧,我火速辦了婚禮,結(jié)果婚禮上增显,老公的妹妹穿的比我還像新娘雁佳。我一直安慰自己,他們只是感情好同云,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布糖权。 她就那樣靜靜地躺著,像睡著了一般炸站。 火紅的嫁衣襯著肌膚如雪星澳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天旱易,我揣著相機與錄音禁偎,去河邊找鬼。 笑死阀坏,一個胖子當著我的面吹牛如暖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播忌堂,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盒至,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了士修?” 一聲冷哼從身側(cè)響起枷遂,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棋嘲,沒想到半個月后酒唉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡封字,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了耍鬓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阔籽。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牲蜀,靈堂內(nèi)的尸體忽然破棺而出笆制,到底是詐尸還是另有隱情,我是刑警寧澤涣达,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布在辆,位于F島的核電站证薇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏匆篓。R本人自食惡果不足惜浑度,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸦概。 院中可真熱鬧箩张,春花似錦、人聲如沸窗市。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咨察。三九已至,卻和暖如春摄狱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背二蓝。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刊愚,地道東北人踊跟。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像鸥诽,于是被迫代替她去往敵國和親商玫。 傳聞我的和親對象是個殘疾皇子牡借,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • iOS 13系統(tǒng)的問世,開啟了App的深色模式的大門钠龙。2002年3月4日更新的AppStore審核指南提出:從20...
    31313_iOS閱讀 2,574評論 0 9
  • 0炬藤、前言 隨著iOS13的普及,大多數(shù)的APP都已經(jīng)適配了暗黑模式碴里,網(wǎng)絡上關于暗黑模式適配的文章也很多沈矿,基本看幾篇...
    代亮真的不會亮閱讀 6,844評論 3 19
  • IOS 13 發(fā)布月余咬腋,一直未適配暗黑模式羹膳,只是簡單地設置不支持暗黑模式根竿。前幾天傳言再不適配暗黑陵像,蘋果就下架W...
    樂之新閱讀 3,551評論 3 2
  • 真是不知道今天是什么日子。 糟糕的心情妻怎,糟糕的一切,糟糕...
    子誓不染閱讀 137評論 0 1
  • 眾所周知蹂季,第一次登上月球的實際上有兩個人。一個家喻戶曉偿洁,叫阿姆斯特朗。還有一個叫奧爾德林涕滋。 在慶祝登月成功的慶功宴...
    弘慧閱讀 247評論 0 0