Я создал диспетчер конфигурации, чтобы обновлять настройки пользовательского интерфейса без перезагрузки. В большинстве настроек вы можете просто перерисовать, но, по-видимому, он более ограничен с помощью панели вкладок.Swift: Обновить вкладку Цвет фона фона динамически
Я обновить панель вкладок в моих UITabBarController
следующих, когда я получаю уведомление об изменении конфигурации (примечание: это может быть в любое время после viewDidLoad
):
self.tabBar.backgroundColor = tabBarBackgroundColour
Это обновление цвета, но только после того, как около 5 -10 секунд.
Я пробовал различные способы принудительного обновления с помощью setNeedsLayout
и setNeedsDisplay
как на панели вкладок, так и на представлении, но ни один из них не работает.
self.tabBar.setNeedsLayout()
self.tabBar.setNeedsDisplay()
или
self.view.setNeedsLayout()
self.view.setNeedsDisplay()
Я также попытался обновить отдельные вкладки штриховых элементов, как я вижу, другие люди имели подобные проблемы при обновлении изображения, но безрезультатно.
Вы уверены, что вы обновляете цвет из основной темы? Я помню, что если вы обновляете интерфейс из фонового потока, он иногда затягивает ничью ... – JohnnyAW