从下图我们可以看到,使用XCode 11构建的iOS 13的新呈现样式使导航栏的高度(56高)与呈现的“全屏”(44高)不同。
这里的问题是,我的应用程序使用的是自定义编写的导航栏,自定义导航栏的高度是用UINavigationController.navigationBar.frame.height计算的,默认高度是44。我们正在努力适应新的演示风格,但我想不出一个变通的办法。我想我也没有被覆盖的情况,如大标题导航栏和紧凑的导航栏。任何帮助都将不胜感激。

致谢对象:https://medium.com/@hacknicity/view-controller-presentation-changes-in-ios-13-ac8c901ebc4e

2) presentationStyle .pageSheet中navigationBar高度为56的图像

3) presentationStyle .fullScreen中navigationBar Height为44的图像
发布于 2019-11-21 22:18:28
这似乎是iOS中的一个错误,我使用了this workaround,但我在viewDidLoad而不是viewWillAppear中调用它,因为后者只在视图控制器动画完成后才应用修复。
override func viewDidLoad(_ animated: Bool) {
// ...
if #available(iOS 13.0, *) {
navigationController?.navigationBar.setNeedsLayout()
}
} https://stackoverflow.com/questions/58296535
复制相似问题