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

浙公网安备 33010602011771号