代码之家  ›  专栏  ›  技术社区  ›  Neelesh

Swift:状态栏颜色与导航栏颜色不同

  •  0
  • Neelesh  · 技术社区  · 4 年前

    顶部的状态栏似乎采用视图背景色,而不是导航栏背景色。我们将不胜感激

    enter image description here

    override func viewDidLoad() {
            super.viewDidLoad()
            self.title = "Hello"
            self.navigationController?.navigationBar.backgroundColor = .white
            self.view.backgroundColor = .blue
        }
    1 回复  |  直到 4 年前
        1
  •  0
  •   adeasismont    4 年前

    你应该使用 UINavigationBarAppearance 自定义导航栏的外观,而不是直接更改视图的背景颜色。

    https://developer.apple.com/documentation/uikit/uinavigationbarappearance

    你可以直接在屏幕上设置 UINavigationBar ( standardAppearance , compactAppearance , scrollEdgeAppearance , compactScrollEdgeAppearance )或者在视图控制器的导航项上。

    var appearance = UINavigationBarAppearance()
    appearance.configureWithOpaqueBackground()
    appearance.backgroundColor = .white
    self.navigationItem.standardAppearance = appearance
    self.navigationItem.scrollEdgeAppearance = appearance