我创建了此结构以能够修改申请时间。它适用于为导航栏和选项卡栏绘制的所有元素。我已经尝试了几种方法,但是没有用,有人可以向我指出一些建议。谢谢
通过开关,我可以使所有元素的值都更改,除了导航栏和标签栏所述。
结构:
theme file
ThemeProtocol file
然后主题文件
dark
Default
文件主题
import UIKit
class Theme {
static var current: ThemeProtocol = Default()
}
文件ThemeProtocol
import UIKit
protocol ThemeProtocol {
var backgroundColorView: UIColor { get }
var tint: UIColor { get }
var coloreTesto: UIColor { get }
var coloreTabella: UIColor { get }
var colorecella: UIColor { get }
var coloreLineaTabella: UIColor { get }
var coloreTestoBottone: UIColor { get }
}
file Dark e Default
import UIKit
class Dark: ThemeProtocol {
var backgroundColorView: UIColor = UIColor.black
var tint: UIColor = UIColor.blue
var coloreTesto: UIColor = UIColor.white
var coloreTabella: UIColor = UIColor.black
var colorecella: UIColor = UIColor.black
var coloreLineaTabella: UIColor = UIColor.white
var coloreTestoBottone: UIColor = UIColor.white
}
例如,如果我每次在swicth上单击时,将这段代码放入放置在viewDidLoad中的文件中,颜色就会发生变化,但我无法在导航和标签栏上做到这一点
override func viewDidLoad () {
super.viewDidLoad ()
view.backgroundColor = Theme.current.backgroundColorView
}
答案 0 :(得分:0)
我认为您可以使用:navigationController?.navigationBar.barTintColor = <Your color>
。
我提出了一个示例,但是使用了一个框架。但是我的样品应该给您解决方案。您可以在这里找到示例:https://github.com/enigmatic7earth/theme-sample