iOS:使状态栏在非 iphoneX 上隐藏时保持其高度
Posted
技术标签:
【中文标题】iOS:使状态栏在非 iphoneX 上隐藏时保持其高度【英文标题】:iOS: Make Status Bar Keep its Height When Hidden on non-iphoneX 【发布时间】:2018-08-15 16:12:13 【问题描述】:当我隐藏状态栏时:
UIApplication.shared.isStatusBarHidden = true
由于状态栏消失,我的其他视图向上移动。这很奇怪,因为通常当您将视图设置为隐藏时,它不会失去其高度。然而,这不会在 iPhoneX 上发生。
如何在不丢失高度的情况下隐藏状态栏?是否可以只使状态栏文本透明?
这也可以解决我的问题。
编辑:人们想知道我为什么要这样做。那么Snapchat就是这样做的。当您从故事中打开照片时,父视图的状态栏会消失,但状态栏所在的高度保持不变。
【问题讨论】:
【参考方案1】:您的视图最终被固定到顶部布局指南/安全区域。当状态栏隐藏时它会向上移动,因此它们也会向上移动。如果那不是您想要的,请不要这样做。
(但是,请小心,因为您的应用需要在 iPhone X 等无边框设备上运行。)
例如,这里的按钮被固定在主视图的顶部,而不是安全区域。如您所见,当状态栏显示和隐藏时(显示 iPhone X 和 iPhone 5s),它不会移动:
【讨论】:
顺便说一句,UIApplication.shared.isStatusBarHidden = true
这行是个难闻的气味。这不是管理状态栏可见性的正确方法。
另外,我发现在 iPhoneX 上,隐藏状态栏不会将固定到安全区域的视图向上移动。它确实会移动所有其他手机。
@Micro 你应该覆盖属性:override var prefersStatusBarHidden: Bool return true
那我该怎么做呢?你的回答毫无意义,并没有告诉我任何我不知道的事情。
在 iPhoneX 和 5s 的屏幕截图中,超级视图按钮的顶部约束值是否相同?以上是关于iOS:使状态栏在非 iphoneX 上隐藏时保持其高度的主要内容,如果未能解决你的问题,请参考以下文章