ios 11导航栏重叠状态栏

Ash*_*ish 7 ios11 xcode9

在ios 11导航栏中是重叠状态栏.如果任何身体面临同样的问题,请帮助.

在此输入图像描述

Dar*_*eng 0

不确定这是否是同样的问题,但我们在升级到 iOS 11 时也遇到了这个问题。

请参阅ios 11 自定义导航栏位于状态栏下方

我们手动将导航栏高度设置为 64 并固定到超级视图边缘。遵循 UINavigationBarDelegate 协议并实现 UIBarPositioningDelegate 委托方法为我们解决了这个问题。

我们更换了

navigationBar.autoPinEdgesToSuperviewEdgesExcludingEdge(.bottom)
navigationBar.autoSetDimension(.height, toSize: 64)
Run Code Online (Sandbox Code Playgroud)

...
  if #available(iOS 11.0, *) {
    navigationBar.topAnchor.constraint(
      equalTo: self.view.safeAreaLayoutGuide.topAnchor
    ).isActive = true
  } else {
    navigationBar.topAnchor.constraint(
      equalTo: topLayoutGuide.bottomAnchor
    ).isActive = true
  }
  navigationBar.autoPinEdge(toSuperviewEdge: .left)
  navigationBar.autoPinEdge(toSuperviewEdge: .right)
  navigationBar.delegate = self
...

public func position(for bar: UIBarPositioning) -> UIBarPosition
  return .topAttached
}
Run Code Online (Sandbox Code Playgroud)

这是使用 purelayout DSL 进行一些自动布局调用 ( https://github.com/PureLayout/PureLayout )

答案请访问/sf/users/23939611/