После изменения цвета фона панели навигации, у позиции self.view изменяется - PullRequest
0 голосов
/ 13 ноября 2018

В viewwillAppear я меняю цвет фона панели навигации. Я пытаюсь установить вид с рамкой (0,53, ширина, высота). На первом этапе он показывает правильное значение и занимает 53 после высоты панели навигации, но когда я меняю тему и подхожу к этому контроллеру, он берет 53 из 0. Поэтому он скрывается за панелью навигации.

Я пишу следующий код в viewwillappear.

if(oldTheme)
{
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"bar.png"), for: .default)
}
else {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"bar2.png"), for: .default)
}

Пожалуйста, совет.

Заранее спасибо.

1 Ответ

0 голосов
/ 13 ноября 2018

Когда вы изменяете свойство backgroundColor, вы вызываете layoutSubviews и, в конечном итоге, все снова выстраиваетсяЕсли вы устанавливаете рамку вида программно, вы должны сделать это в layoutSubviews вида или в viewWillLayoutSubviews из viewController

...