Я использую случайные пастельные цвета в моем учебном приложении (прыгающие круги), но когда мой iPad находится в темном режиме, пастель выглядит очень мягко. Можно ли как-то инициализировать UIColor двумя цветами? Может быть что-то вроде:
UIColor(forLightMode: UIColor, forDarkMode: UIColor)
Мое текущее приложение правильно создает новые цвета, но они не меняются автоматически, когда я переключаюсь из темного в светлый режим. Приложение только начинает генерировать новые из набора pastel
.
func makeRandomColor() -> UIColor {
let fullRange : ClosedRange<CGFloat> = 0...255
let pastelRange : ClosedRange<CGFloat> = 127...255
let randomPastelRed = CGFloat.random(in: pastelRange) / 255
let randomPastelGreen = CGFloat.random(in: pastelRange) / 255
let randomPastelBlue = CGFloat.random(in: pastelRange) / 255
let randomRed = CGFloat.random(in: fullRange) / 255
let randomGreen = CGFloat.random(in: fullRange) / 255
let randomBlue = CGFloat.random(in: fullRange) / 255
let randomAlpha = CGFloat.random(in: 0.6...1)
return UIColor.init(dynamicProvider: { traitCollection in
if traitCollection.userInterfaceStyle == .dark {
return UIColor(
red: randomRed,
green: randomGreen,
blue: randomBlue,
alpha: randomAlpha
)
} else {
return UIColor(
red: randomPastelRed,
green: randomPastelGreen,
blue: randomPastelBlue,
alpha: randomAlpha
)
}
})
}