在 viewwillAppear 上,我正在更改导航栏背景颜色。我正在尝试设置一个带有框架(0,53,宽度,高度)的 View 。第一次,它显示正确,并且在导航栏高度之后花费了 53,但是当我更改主题并来到该 Controller 时,它从 0 开始花费了 53。所以它隐藏在导航栏后面。
我正在 viewwillappear 中编写以下代码。
if(oldTheme)
{
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"bar.png"), for: .default)
}
else {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"bar2.png"), for: .default)
}
请指教。
提前致谢。
最佳答案
当您更改 backgroundColor
属性时,您会调用 layoutSubviews
并最终导致所有内容再次布局。如果您以编程方式设置 View 框架,则应该在 View 的 layoutSubviews
或 viewController
viewWillLayoutSubviews
中执行此操作
关于ios - 更改导航栏背景颜色后,self.view 的 y 位置发生更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53282589/