SwiftUI - TabView Light Mode UIColor отображается в предварительном просмотре, а не в Sim или устройстве
Я использую Swift 5.3 на MacOS 11.01 и создал новое "мультиплатформенное" приложение для iOS 14.2. Я создал пользовательские цветовые ресурсы для светлого / темного режимов, но у меня возникают проблемы с отображением цвета фона светлого режима на моем TabView. Цвет фона темного режима TabView выглядит нормально.
Цвет фона светового режима выглядит идеально в Xcode Preview, но когда я запускаю приложение в Sim или на моем устройстве, цвет фона панели вкладок ясен в светлом режиме, но показывает правильный цвет для темного режима.
Я использую одни и те же цветовые ресурсы для раскрашивания моего NavigationView, и цвета светлого и темного режима отображаются правильно, когда выбраны соответствующие режимы.
Есть ли что-то очевидное, чего мне не хватает в последней версии SwiftUI 5.3 и цветных ресурсах?
Я использую следующий код в
.onAppear
в TabView
UITabBar.appearance().barTintColor = UIColor(named: "barBackground")
Обратите внимание, что "barBackground" - это настраиваемый набор цветов, который я создал, чтобы добавить фоновые цвета светлого / темного режима как в NavigationView, так и в TabView.
С радостью предоставлю дополнительную информацию, если это не ясно. Благодаря!
1 ответ
Немного поздно делать это в
.onAppear
, внешний вид необходимо обязательно изменить перед созданием затронутого вида, поэтому сделайте это в
init
init() {
UITabBar.appearance().barTintColor = UIColor(named: "barBackground")
}