我将导航栏隐藏在其中一个屏幕上,如果已设置:
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()
ImageView的所有约束都设置为0并且设置为填充屏幕:
所以,我想将ImageView放在状态栏下,并将状态栏图标/文本设为白色。我做错了什么?
答案 0 :(得分:3)
你没有做任何事情"错误"。您已将图像视图的顶部设置为视图控制器顶部布局指南的底部。嗯,这是状态栏的底部 - 正是您看到图像视图顶部的位置。
如果您希望图像视图低于状态栏,则顶部需要固定在主视图的顶部,而不是顶部布局指南。
如果您希望状态栏更改文字颜色,则需要实施preferredStatusBarStyle
以返回.LightContent
。如果这意味着preferredStatusBarStyle
的结果已更改,则需要调用setNeedsStatusBarAppearanceUpdate
以提醒运行时此事实。
答案 1 :(得分:1)