状态栏在横向模式下旋转后留下白色矩形

Status bar left white rectangle after rotate in landscape mode

我有 VC 带有隐藏导航栏的 UIView

self.navigationController?.setNavigationBarHidden(true, animated: animated)

在顶部VC我的观点有限制View.top = SafeArea.Top

在纵向模式下 - 一切正常。但是当旋转到横向模式时状态栏留在 VC 像白色矩形。

我不需要横向状态栏。如何删除它?为什么状态栏离开这个矩形?

我已经根据您的方案实现了代码,它对我来说工作正常。我认为这是 xcode/compiler 的问题。你可以这样做:

  1. 将主视图 clipToBounds 属性 设置为 true。
  2. 从情节提要中隐藏导航栏:Select NavigationController,打开身份检查器,取消选中显示导航栏选项

抱歉! 我找到原因了。 这是一个自定义视图,用于为状态栏着色。

添加此视图的示例。

let statusBarView = UIView(frame: UIApplication.shared.statusBarFrame)
let statusBarColor = UIColor(r: 240, g: 243, b: 245)
statusBarView.backgroundColor = statusBarColor
view.addSubview(statusBarView)

谢谢大家!