在某些设备中,如 iPhone 7 和 8,导航栏在导航后与状态栏重叠,父 View Controller 隐藏了状态栏,但我分别在 viewWillAppear 和 viewWillDisappear 中显示和隐藏它。我在 iOS 12 中进行了测试,它可以正常工作。
我正在使用 prefersStatusBarHidden 来隐藏状态栏。
这里是图片 Navbar Overlaps Status bar
更新: 这里有一个示例项目:https://github.com/FranklinSamboni/NavBarTestSwfit . 它在 iOS 12 中运行良好,但在 iOS 13 中导航栏与 iPhone 7,8 中的状态栏重叠
使用 iPhone 8(模拟器)的图像 Home 第二种观点 Second View
最佳答案
好吧,我要给出那些空泛的答案之一。
一方面,您肯定发现了 iOS 13 中的一个新行为。当您隐藏状态栏时,导航栏会缩小。您可以将此称为 iOS 13 中的错误...
另一方面,也有人认为您的做法是错误的。如果你有导航栏,你已经不能在没有边框的设备(iPhone X 等)上隐藏状态栏,现在 Apple 似乎假设如果你有导航栏你就赢了'隐藏状态栏完全。这是一个合理的假设,因为当有导航栏时,纵向隐藏状态栏是没有意义的,尤其是在导航 Controller 的某些子项中而不是其他子项中。
所以您可以就此提交错误报告,但我认为您不会从中得到任何乐趣。苹果可能会回答说这是有意为之,或者至少是他们不想支持的事情的结果。你有一个导航栏;允许显示状态栏。
关于ios - NavBar 在 iOS 13 Swift 中与状态栏重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633830/