我希望您不要一个一个地创建彩色资产。您可以使用此函数将图像着色为 UIImageView 的扩展。我也对按钮使用相同的技术。
func setImageAndColor(image: UIImage, color: UIColor) {
let templateImage = image.withRenderingMode(.alwaysTemplate)
self.image = templateImage
self.tintColor = color
}
如果您想定义所有自己的颜色,我建议创建一个名为 Colors 的单例类:
import UIKit
class Colors {
static let shared = Colors()
var statusBarStyle: UIStatusBarStyle = .lightContent
private init(){}
func setLightColors() {
statusBarStyle = .darkContent
yourColor = UIColor( // choose your favorite color
styleColor = UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 1)//white
labelColor = UIColor(red: 15/255, green: 15/255, blue: 15/255, alpha: 1)
subLabelColor = UIColor(red: 25/255, green: 25/255, blue: 25/255, alpha: 1)
............从这里设置所有颜色的值。
}
func setDarkColors() {
statusBarStyle = .lightContent
yourColor = // choose your favorite color
............
}
// set initial colors
var yourColor: UIColor =
}
如果有人对整个颜色课程感兴趣,请给我发短信或在下面发表评论。
我通过以下方式访问颜色单例:Colors.shared.yourColor
同样对于第一个配置,我在第一个 VC 中设置了暗模式编号(0-Auto;1-On;2-Off):
if darkmodeNumber == 0 {
if traitCollection.userInterfaceStyle == .light {
print("Light mode")
Colors.shared.setLightColors()
} else {
print("Dark mode")
Colors.shared.setDarkColors()
}
} else if darkmodeNumber == 1 {
Colors.shared.setDarkColors()
} else if modeNumber == 2 {
Colors.shared.setLightColors()
}
}
然后状态栏也应该以正确的方式改变。