iOS:暗黑模式適配

簡介:
iOS13蘋果推出的暗黑模式,在去年蘋果已經(jīng)聲明必須適配暗黑模式否則會(huì)下架。
網(wǎng)上有很多好的文章來適配暗黑模式晌块,但是大部分僅僅是以蘋果系統(tǒng)、方法來適配的暗黑模式帅霜,最大的一個(gè)問題是不好做內(nèi)置的暗黑模式的適配匆背。

所以設(shè)計(jì)了一個(gè)方案,支持APP內(nèi)置的模式切換身冀。這個(gè)方案不說是暗黑模式的適配钝尸,更多能應(yīng)用的是主題切換效果。

思路:
以通知為中心搂根,在切換主題后珍促,發(fā)送通知給各個(gè)頁面,技術(shù)通知剩愧,設(shè)定各個(gè)控件顏色猪叙。
顏色以白、黑2套仁卷,存儲在項(xiàng)目中的json文件穴翩,設(shè)定顏色直接讀取json中的16進(jìn)制,自動(dòng)根據(jù)主題適配锦积。

雛形demo芒帕,只提供思路,可以根據(jù)項(xiàng)目情況優(yōu)化充包。

未命名.gif

下面是應(yīng)用

class ViewController: UIViewController {

    lazy var label = { () -> UILabel in
        let label = UILabel.init(frame: CGRect(x: 0, y: 200, width: self.view.frame.size.width, height: 40));
        label.text = "示例"
        return label
    }()
    lazy var button = { () -> UIButton in
        let button = UIButton.init(frame: CGRect(x: 100, y: 300, width: self.view.frame.size.width - 200, height: 40));
        button.addTarget(self, action: #selector(self.buttonClicked), for: .touchUpInside)
        button.setTitle("切換主題", for: .normal)
        return button
    }()
    lazy var imageView = { () -> UIImageView in
        let imageView = UIImageView.init(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height));
        imageView.isUserInteractionEnabled = true
        return imageView
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        self.view.backgroundColor = UIColor.white;
        
        self.view.addSubview(self.imageView)
        self.imageView.addSubview(self.label)
        self.imageView.addSubview(self.button)
        
        self.changeColor()
        
        NotificationCenter.default.addObserver(self, selector: #selector(self.changeColor), name: NSNotification.Name(rawValue:"changeColor"), object: nil)
        
    }
    
    
    @objc func buttonClicked(){
        if themeManager.getThemeType() == .dark {
            themeManager.changeTheme(type: .light)
        }else if themeManager.getThemeType() == .light {
            themeManager.changeTheme(type: .dark)
        }
    }
    
    //改變顏色
    @objc func changeColor(){
        self.label.backgroundColor = themeManager.getThemeColor(color: "kColor_D00")
        self.label.textColor = themeManager.getThemeColor(color: "kColor_foreground")
        self.button.backgroundColor = themeManager.getThemeColor(color: "kColor_B01")
        self.button.setTitleColor(themeManager.getThemeColor(color: "kColor_D00"), for: .normal)

        self.imageView.image = themeManager.getThemeImage(imageName: "image")
    }
}

GitHub:https://github.com/qw9685/darkMode

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末副签,一起剝皮案震驚了整個(gè)濱河市遥椿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌淆储,老刑警劉巖冠场,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異本砰,居然都是意外死亡碴裙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門点额,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舔株,“玉大人,你說我怎么就攤上這事还棱≡卮龋” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵珍手,是天一觀的道長办铡。 經(jīng)常有香客問我,道長琳要,這世上最難降的妖魔是什么寡具? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮稚补,結(jié)果婚禮上童叠,老公的妹妹穿的比我還像新娘。我一直安慰自己课幕,他們只是感情好厦坛,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著撰豺,像睡著了一般粪般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上污桦,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天亩歹,我揣著相機(jī)與錄音,去河邊找鬼凡橱。 笑死小作,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的稼钩。 我是一名探鬼主播顾稀,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坝撑!你這毒婦竟也來了静秆?” 一聲冷哼從身側(cè)響起粮揉,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抚笔,沒想到半個(gè)月后扶认,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡殊橙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年辐宾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膨蛮。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叠纹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敞葛,到底是詐尸還是另有隱情誉察,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布制肮,位于F島的核電站冒窍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏豺鼻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一款慨、第九天 我趴在偏房一處隱蔽的房頂上張望儒飒。 院中可真熱鬧,春花似錦檩奠、人聲如沸桩了。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽井誉。三九已至,卻和暖如春整胃,著一層夾襖步出監(jiān)牢的瞬間颗圣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工屁使, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留在岂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓蛮寂,卻偏偏與公主長得像蔽午,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子酬蹋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

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