DKNightVersion的基本使用(夜間模式)


DKNightVersion下載地址: https://github.com/Draveness/DKNightVersion

基本原理就是利用一個單例對象來存儲顏色, 然后通過runtime中的objc_setAssociatedObject和objc_getAssociatedObject來完成兩個對象間傳遞要保存的顏色(純屬個人看法)

下面是gif效果圖:

下面是代碼部分:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var changeButton: UIButton!
    
    @IBOutlet weak var testSwitch: UISwitch!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.title = "夜間模式"
        // 導航欄背景
        self.navigationController?.navigationBar.dk_barTintColorPicker = DKColorWithRGB(0xffffff, 0x343434)
        // 導航欄上的item和返回等顏色
        self.navigationController?.navigationBar.dk_tintColorPicker = DKColorWithColors(UIColor.redColor(), UIColor.whiteColor())
        // view的背景顏色
        self.view.dk_backgroundColorPicker = DKColorWithRGB(0xffffff, 0x343434)
        // 按鈕title顏色
        self.changeButton.dk_setTitleColorPicker(DKColorWithColors(UIColor.redColor(), UIColor.whiteColor()), forState: .Normal)
        // 開關顏色
        self.testSwitch.dk_onTintColorPicker = DKColorWithColors(UIColor.greenColor(), UIColor.redColor())
    }

    @IBAction func change(sender: AnyObject) {
        
        // 判斷當前是否為夜間模式
        if DKNightVersionManager.currentThemeVersion() == DKThemeVersion.Night {
            // 切換為白天模式
            DKNightVersionManager.dawnComing()
        } else {
            // 切換為夜間模式
            DKNightVersionManager.nightFalling()
        }
    }

}

在項目中, 可以對以下控件設置兩種顏色, 分別為白天模式和夜間模式

當設置完成, 調用以下代碼即可切換為白天模式

// 切換為白天模式
DKNightVersionManager.dawnComing()

或者調用一下代碼切換為夜間模式

// 切換為夜間模式
DKNightVersionManager.nightFalling()

使用還是挺簡單的(不過需要對每個控件進行設置, 對比較龐大的項目來說, 還是很蛋疼的)...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM