博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DKNightVersion的基本使用(夜间模式)
阅读量:4342 次
发布时间:2019-06-07

本文共 1630 字,大约阅读时间需要 5 分钟。

DKNightVersion下载地址: 

基本原理就是利用一个单例对象来存储颜色, 然后通过runtime中的objc_setAssociatedObject和objc_getAssociatedObject来完成两个对象间传递要保存的颜色(纯属个人看法)

下面是gif效果图:

下面是代码部分:

import UIKitclass 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()

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

转载于:https://www.cnblogs.com/Rinpe/p/5205651.html

你可能感兴趣的文章
ffmpeg格式转换命令
查看>>
万方数据知识平台 TFHpple +Xpath解析
查看>>
Hive实现oracle的Minus函数
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
RocketMQ配置
查看>>
蚂蚁金服井贤栋:用技术联手金融机构,形成服务小微的生态合力
查看>>
端口号大全
查看>>
机器学习基石笔记2——在何时可以使用机器学习(2)
查看>>
POJ 3740 Easy Finding (DLX模板)
查看>>
MySQL 处理重复数据
查看>>
关于typedef的用法总结(转)
查看>>
【strtok()】——分割字符串
查看>>
Linux下安装rabbitmq
查看>>
曹德旺
查看>>
【转】判断点在多边形内(matlab)
查看>>
java基础之集合:List Set Map的概述以及使用场景
查看>>
Python 线程 进程 协程
查看>>
iOS语言中的KVO机制
查看>>
excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法
查看>>
响应式web设计之CSS3 Media Queries
查看>>