• 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()
    

    使用还是挺简单的(不过需要对每个控件进行设置, 对比较庞大的项目来说, 还是很蛋疼的)...

  • 相关阅读:
    BZOJ 1202: [HNOI2005]狡猾的商人( 差分约束 )
    BZOJ 1800: [Ahoi2009]fly 飞行棋( 枚举 )
    BZOJ 2006: [NOI2010]超级钢琴( RMQ + 堆 )
    BZOJ 1029: [JSOI2007]建筑抢修( 贪心 )
    FZU 2233 ~APTX4869 贪心+并查集
    FZU2232 炉石传说 最大匹配
    FZU 2237 中位数 主席树 树上k大
    CodeForcesGym 100753B Bounty Hunter II 二分图最小路径覆盖
    NOIP2010关押罪犯 二分+二染色
    POJ2236 Wireless Network 并查集
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5205651.html
Copyright © 2020-2023  润新知