不确定这是否是同样的问题,但我们在升级到 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/
| 归档时间: |
|
| 查看次数: |
7166 次 |
| 最近记录: |