视图不在状态栏下,状态栏为黑色

时间:2016-08-07 01:07:01

标签: ios uistatusbar

我将导航栏隐藏在其中一个屏幕上,如果已设置:

navigationController?.navigationBarHidden = true

状态栏变黑。此外,图像并不适合所有屏幕(请参见屏幕截图)。 如果我评论此行,导航栏将保留在屏幕上,状态栏为白色。

完整代码:

override func viewWillAppear(animated: Bool) {
        navigationController?.navigationBarHidden = true
        navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
        navigationController?.navigationBar.translucent = true
        navigationController?.navigationBar.backgroundColor = UIColor.clearColor()
        navigationController?.view.backgroundColor = UIColor.clearColor()

enter image description here

ImageView的所有约束都设置为0并且设置为填充屏幕:

enter image description here

所以,我想将ImageView放在状态栏下,并将状态栏图标/文本设为白色。我做错了什么?

2 个答案:

答案 0 :(得分:3)

你没有做任何事情"错误"。您已将图像视图的顶部设置为视图控制器顶部布局指南的底部。嗯,这是状态栏的底部 - 正是您看到图像视图顶部的位置。

如果您希望图像视图低于状态栏,则顶部需要固定在主视图的顶部,而不是顶部布局指南。

如果您希望状态栏更改文字颜色,则需要实施preferredStatusBarStyle以返回.LightContent。如果这意味着preferredStatusBarStyle的结果已更改,则需要调用setNeedsStatusBarAppearanceUpdate以提醒运行时此事实。

答案 1 :(得分:1)

要将图像视图放在状态栏下,并让图像视图填充UIViewControllers视图:

  • 清除图像视图的所有约束
  • 添加约束以将图像视图设置为与父视图具有相同的宽度
  • 添加约束以将图像视图设置为与父视图具有相同的高度
  • 将图像视图固定到最近的邻居,如下所示。添加约束

enter image description here

  • 最终约束如下所示:

enter image description here