iOS13暗黑模式適配(項(xiàng)目開發(fā)版)

蘋果公司在iOS13推出了暗黑模式鳖孤,蘋果的建議是讓開發(fā)者盡快適配。前段時(shí)間微信就推出了暗黑模式抡笼。所以我們也需要盡快適應(yīng)苏揣。

這里也提供 禁用暗黑模式 的方法,請(qǐng)查看iOS開發(fā)小技巧第五條

直接看效果 Demo

效果圖

暗黑模式適配

適配包含兩方面蔫缸,顏色適配和圖片適配腿准。接下來我們就這兩方面開始我們的適配之旅。

顏色適配

iOS13之后蘋果將UIColor改變成了動(dòng)態(tài)顏色拾碌,UIColor會(huì)根據(jù)不同模式來改變不同的顏色。蘋果提供給我們了一些系統(tǒng)顏色街望。這些顏色請(qǐng)參考UIIntercace.h這個(gè)類校翔。然而我們更在意的是我們自定義的顏色。系統(tǒng)給我們提供了兩個(gè)方法

+ (UIColor *)colorWithDynamicProvider:(UIColor * (^)(UITraitCollection *))dynamicProvider;
- (UIColor *)initWithDynamicProvider:(UIColor * (^)(UITraitCollection *))dynamicProvider;

接下來是我自己對(duì)UIColor進(jìn)行的category灾前,這里提供了一些設(shè)置顏色的方法防症,請(qǐng)查看Demo

/// 十六進(jìn)制字符串獲取顏色
/// @param color 16進(jìn)制色值  支持@“#123456”、 @“0X123456”哎甲、 @“123456”三種格式
+ (UIColor *)colorWithHexString:(NSString *)color;

/// 十六進(jìn)制字符串獲取顏色
/// @param color 16進(jìn)制色值  支持@“#123456”蔫敲、 @“0X123456”、 @“123456”三種格式
/// @param alpha 透明度
+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;

/// 適配暗黑模式顏色   傳入的UIColor對(duì)象
/// @param lightColor 普通模式顏色
/// @param darkColor 暗黑模式顏色
+ (UIColor *)colorWithLightColor:(UIColor *)lightColor DarkColor:(UIColor *)darkColor;

/// 適配暗黑模式顏色   顏色傳入的是16進(jìn)制字符串
/// @param lightColor 普通模式顏色
/// @param darkColor 暗黑模式顏色
+ (UIColor *)colorWithLightColorStr:(NSString *)lightColor DarkColor:(NSString *)darkColor;

/// 適配暗黑模式顏色   顏色傳入的是16進(jìn)制字符串 還有顏色的透明度
/// @param lightColor 普通模式顏色
/// @param lightAlpha 普通模式顏色透明度
/// @param darkColor 暗黑模式顏色透明度
/// @param darkAlpha 暗黑模式顏色
+ (UIColor *)colorWithLightColorStr:(NSString *)lightColor WithLightColorAlpha:(CGFloat)lightAlpha DarkColor:(NSString *)darkColor WithDarkColorAlpha:(CGFloat)darkAlpha;

具體用法如下:

//只需在給顏色賦值的時(shí)候指定不同模式下的顏色即可
self.customColorLabel.backgroundColor = [UIColor colorWithLightColorStr:@"226597" DarkColor:@"5ACFB1"] ;

Color Set 的使用

對(duì)于使用xib的童鞋來說炭玫,我們就只能使用color set顏色集了奈嘿。首先創(chuàng)建一個(gè)顏色集合
color set

接下來選擇Appearance選項(xiàng)中的Any,Dark模式就會(huì)出現(xiàn)兩個(gè)模式,我們?cè)O(shè)置這兩個(gè)模式的顏色值吞加,使用的時(shí)候直接使用我們自定義的顏色名稱(customBlueColor)就可以了

Snipaste_2020-01-01_19-55-43.png

使用方法:

///用ColorSet 跟UIImage使用是類似的  把自定義的顏色名字寫入就行了
self.colorSetLabel.textColor = [UIColor colorNamed:@"customBlueColor"];

Layer層面上的Color適配

iOS13中UIColor是動(dòng)態(tài)變化的裙犹,但是對(duì)于CGColr,CALayer層面上的Color來說,還是只是單一顏色,我們只能在模式變化的時(shí)候的監(jiān)聽方法中適配衔憨。不過我們可以參考XYColor

/// 模式改變的回調(diào)代理
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection{
    [super traitCollectionDidChange:previousTraitCollection];
    /**
     *CGColor適配
     *iOS13后叶圃,UIColor能夠表示動(dòng)態(tài)顏色,但是CGColor依然只能表示一種顏色践图。所以對(duì)于CALayer對(duì)象只能在traitCollectionDidChange方法中進(jìn)行改變
    */
    if (@available(iOS 13.0, *)) {
        if ([self.traitCollection hasDifferentColorAppearanceComparedToTraitCollection:previousTraitCollection]) {
            //修改label的邊框色
            self.layerLabel.layer.borderColor = KTestColor.CGColor;
            if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
                NSLog(@"************* iOS13 暗黑模式");
            }else{
                NSLog(@"############# iOS13 普通模式");
            }
        }
    }
}

圖片適配

其實(shí)圖片適配跟Color Set設(shè)置是一樣

圖片適配

使用方法:

//圖片適配
self.appleImageView.image = [UIImage imageNamed:@"icon01"];

至此掺冠,我們的適配已經(jīng)結(jié)束。具體使用請(qǐng)查看Demo码党。以上有什么不對(duì)的地方歡迎各位童鞋的指正德崭,我們一起討論悍及。大家加油!=影心赶!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缺猛,隨后出現(xiàn)的幾起案子缨叫,更是在濱河造成了極大的恐慌,老刑警劉巖荔燎,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耻姥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡有咨,警方通過查閱死者的電腦和手機(jī)琐簇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來座享,“玉大人婉商,你說我怎么就攤上這事≡眩” “怎么了丈秩?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)淳衙。 經(jīng)常有香客問我蘑秽,道長(zhǎng),這世上最難降的妖魔是什么箫攀? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任肠牲,我火速辦了婚禮,結(jié)果婚禮上靴跛,老公的妹妹穿的比我還像新娘缀雳。我一直安慰自己,他們只是感情好汤求,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布俏险。 她就那樣靜靜地躺著,像睡著了一般扬绪。 火紅的嫁衣襯著肌膚如雪竖独。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天挤牛,我揣著相機(jī)與錄音莹痢,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛竞膳,可吹牛的內(nèi)容都是我干的航瞭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼坦辟,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼刊侯!你這毒婦竟也來了闯团?” 一聲冷哼從身側(cè)響起侈百,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎本刽,沒想到半個(gè)月后挪蹭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亭饵,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年梁厉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辜羊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡词顾,死狀恐怖八秃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情计技,我是刑警寧澤喜德,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站垮媒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏航棱。R本人自食惡果不足惜睡雇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饮醇。 院中可真熱鬧它抱,春花似錦、人聲如沸朴艰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)祠墅。三九已至侮穿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毁嗦,已是汗流浹背亲茅。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人克锣。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓茵肃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親袭祟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子验残,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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

  • 1.環(huán)境 Xcode11 正式版iOS13 beta版本Mac系統(tǒng): 10.15 beta版本 2.原理 將同一個(gè)...
    329fd8af610c閱讀 11,620評(píng)論 0 17
  • 蘋果全球開發(fā)者大會(huì) (英文全稱是“Worldwide Developers Conference”),簡(jiǎn)稱為“WW...
    Coder_JMicheal閱讀 3,245評(píng)論 4 11
  • 2019-9-20巾乳,apple公司向全球移動(dòng)設(shè)備進(jìn)行了iOS13系統(tǒng)正式版的推送您没。早上來到公司,之前在apple ...
    運(yùn)琴的簡(jiǎn)書閱讀 557評(píng)論 1 1
  • 眼睛渾濁的日子里 不容易看清來路 我描繪不出遠(yuǎn)方的時(shí)候 一面笨拙地點(diǎn)亮 年代已久的礦燈 它在墳?zāi)估锼讲亓硕嗌偬叟c愛...
    老師我暈課閱讀 315評(píng)論 0 9
  • 我們是擁有感知的生物想鹰,聰明的人類又將種種感覺細(xì)細(xì)分類紊婉,就有了我們長(zhǎng)提在嘴邊的喜、怒辑舷、哀喻犁、懼、愛何缓、惡肢础、欲。我們常常跟...
    功一閱讀 376評(píng)論 0 0