【发布时间】:2013-11-06 09:30:58
【问题描述】:
我一直在尝试阻止 UINavigationBar 在调用 setNeedsStatusBarAppearanceUpdate 时移动/调整大小。
当状态栏以动画方式隐藏时,我想将导航栏保持在完整的 64 像素高度。
任何帮助将不胜感激!
更新:我能够通过创建一个新的UIWindow 并覆盖状态栏来解决这个问题。
【问题讨论】:
-
不要认为有任何 API。您可能需要调整窗口大小,可能将
wantsFullScreenLayout设置为NO,等等。 -
wantsFullScreenLayout在 iOS 7 中是 deprecated。 -
我认为您的标题表明您存在误解。当您隐藏状态栏时,导航确实保持相同的高度(44 点),只是状态栏(20 点)和导航栏看起来是一个视图,而实际上它们是两个不同的视图。你是想用导航控制器来做这件事,还是有一个独立的导航栏?
-
标题可能会产生误导,但它实际上是导航栏自动执行的“向上移动”动画,而不是仅仅停留在那里。使用导航控制器时会发生这种情况,我有同样的问题。
-
如果还有人遇到这个问题,this(调整
additionalSafeAreaInsets)是唯一对我有用的方法。
标签: ios iphone objective-c cocoa-touch