DarkMode 主要從兩個(gè)方面來適配,一是顏色,二是圖片,簡單的就不用多說,下面來說一下本人所踩的坑。
一、圖片適配
圖片適配很簡單 如下圖,準(zhǔn)備兩套圖片(dark模式和any模式)如圖箭頭位置選擇 ?Any,Dark ?此時(shí)就完成了圖片的適配。

注意:來回切換深色和淺色模式 ? 有時(shí)候你會(huì)發(fā)現(xiàn)某些圖片明明是設(shè)置了any 和 dark 兩種圖片但是并沒有切換過來,此時(shí)你需要重寫下列函數(shù)(監(jiān)聽模式變化) 然后在此函數(shù)中調(diào)用你設(shè)置圖片的代碼
- (void)traitCollectionDidChange:(nullableUITraitCollection *)previousTraitCollection NS_AVAILABLE_IOS(8_0);
二、顏色適配
官方并沒有給出一個(gè)友好的方法來適配xib和sb中設(shè)置的顏色,WWDC演示的時(shí)候是在Assets.xcassets中設(shè)置顏色來適配iOS13 暗黑模式(WWDC鏈接) 但是?在Assets.xcassets中設(shè)置顏色只能支持iOS11 ?iOS11以下并不能使用。那么如何來適配iOS13 同時(shí)又支持iOS13以下的版本呢?
1、代碼適配
代碼適配對(duì)于xib和sb的工程比較繁瑣 ,網(wǎng)上比較多。
2、Assets.xcassets + 代碼 適配
公司項(xiàng)目使用的是xib和sb如果使用代碼來適配顏色比較繁瑣,所以放棄純代碼適配。 經(jīng)過查資料和實(shí)踐,找到了一個(gè)相對(duì)來說比較簡單的方法來適配,方法如下
注意:由于之前在項(xiàng)目中已經(jīng)設(shè)置了顏色,所以我們并不用對(duì)原來的xib文件進(jìn)行改變。只需適配iOS13即可。


在Assets.xcassets中設(shè)置兩套顏色 如上圖所示。然后在代碼中調(diào)用如上圖所示。此時(shí)iOS13暗色模式圖片和顏色適配已經(jīng)完成
如果有更好適配顏色的方法可以留言,謝謝!
參考文檔