Я наблюдаю неожиданное поведение UITabBar на iOS 26, когда Liquid Glass включен.
Я использую UITabBarAppearance с динамическим UIColor, чтобы синхронизировать выбранный значок панели вкладок и текст заголовка (синий в светлом режиме, зеленый в темном режиме).
Ожидаемое поведение
Выбранный значок панели вкладок и текст заголовка всегда должны иметь один и тот же цвет в зависимости от текущего признака коллекция.
Фактическое поведение
При первоначальной загрузке цвета правильные. Однако после автоматического переключения светлого/темного режима из-за жидкого стекла:
Значок сохраняет настроенный цвет.
Цвет текста заголовка переопределяется системой.
Результат: выбранный значок и текст заголовка имеют разные цвета.
Это происходит, даже если для обоих цветов явно установлен один и тот же динамический цвет пользовательского интерфейса.
Минимальный воспроизводимый пример:
/>введите здесь описание изображения
func applyAppearance() {
let appearance = UITabBarAppearance()
appearance.configureWithTransparentBackground()
let color = UIColor { trait in
trait.userInterfaceStyle == .dark ? .green : .blue
}
let item = appearance.stackedLayoutAppearance
item.selected.iconColor = color
item.selected.titleTextAttributes = [
.foregroundColor: color
]
tabBar.standardAppearance = appearance
tabBar.scrollEdgeAppearance = appearance
}
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
applyAppearance()
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... r-trait-ch