Используй системные семантические цвета вместо жёстко заданных значений. Цвета вроде UIColor.label и UIColor.systemBackground автоматически адаптируются к текущей теме без дополнительного кода.
Определи именованные цвета в Xcode asset catalog с отдельными вариантами для светлой и тёмной темы. Используй их в коде так:
Color("MyCustomColor") // SwiftUI
UIColor(named: "MyCustomColor") // UIKit
Это позволяет держать управление цветами централизованным и удобным в поддержке.
Используй UITraitCollection для определения активной цветовой схемы:
if traitCollection.userInterfaceStyle == .dark {
// применяем тёмную тему
}
Переопредели traitCollectionDidChange(_:), чтобы динамически реагировать на переключение темы пользователем.
Внедри переменную окружения colorScheme, чтобы читать текущую тему или реагировать на её изменения:
@Environment(\.colorScheme) var colorScheme
if colorScheme == .dark {
// применяем тёмную тему
}
Color(red: 0, green: 0, blue: 0)Всегда проверяй обе темы:
preferredColorScheme(.dark) в SwiftUI PreviewsСистемные семантические цвета вроде UIColor.label и UIColor.systemBackground автоматически адаптируются к светлому и тёмному режимам без необходимости писать дополнительный код для определения изменений внешнего вида.
Новый — ещё не проверен сообществом
Вы