在SwiftUI中,设置一个公共的颜色库,在使用颜色时直接用库中的颜色。
在系统中切换暗黑模式,App就会自动切换到暗黑模式了。
运行效果:
1、调用:
Text("名称")
.font(.system(size: 16))
.bold() //加粗
.foregroundColor(ColorEx.shared.Title())
2、实现:
import SwiftUI
// 自定义颜色主题 - 适配暗黑模式
class ColorEx: ObservableObject{
static let shared = ColorEx() //单例 (避免在页面中创建无数个ColorEx对象,占用内存,影响性能)
/// 是否是暗黑模式 true是 false否
func isDarkMode() -> Bool {
return UITraitCollection.current.userInterfaceStyle == UIUserInterfaceStyle.dark
}
/// 背景主题颜色 深灰色/淡灰色
func Bg() -> Color { return isDarkMode() ? Color("303030"):Color("F8F8F8") }
/// 内容、cell颜色 黑色/白色
func ContView() -> Color { return isDarkMode() ? Color("000000"):Color("FFFFFF") }
/// 主文字颜色 白色/黑色
func Title() -> Color { return isDarkMode() ? Color("FFFFFF"):Color("000000") }
/// 副文字颜色 浅白色/灰色
func Subtitle() -> Color { return isDarkMode() ? Color("999999"):Color("999999") }
/// 灰色文字 666666
func Graytitle() -> Color { return isDarkMode() ? Color("FFFFFF"):Color("666666") }
/// 分割线
func Line() -> Color { return isDarkMode() ? Color("505050"):Color("E2E1E2") }
/// 登录页输入框背景颜色、代码块背景颜色
func Input() -> Color { return isDarkMode() ? Color("2F2F2F"):Color("F5F5F5") }
/// App主题蓝
func ThemeBlue() -> Color { return Color("004098") }
}