更改导航栏背景颜色后,self.view 的 y 位置发生更改
Posted
技术标签:
【中文标题】更改导航栏背景颜色后,self.view 的 y 位置发生更改【英文标题】:After changing navigationbar background color , y position of self.view is changed 【发布时间】:2018-11-13 13:54:12 【问题描述】:在 viewwillAppear 上,我正在更改导航栏的背景颜色。我正在尝试使用框架(0,53,宽度,高度)设置视图。在第一次运行时,它显示正确,并且在导航栏的高度之后占用了 53,但是当我更改主题并来到该控制器时,它从 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)
请指教。
提前致谢。
【问题讨论】:
【参考方案1】:当您更改backgroundColor
属性时,您调用layoutSubviews
并最终导致一切重新布局。如果您以编程方式设置视图框架,您应该在视图的layoutSubviews
或viewController
的viewWillLayoutSubviews
中执行此操作
【讨论】:
以上是关于更改导航栏背景颜色后,self.view 的 y 位置发生更改的主要内容,如果未能解决你的问题,请参考以下文章