Swift 按下view controller时,导航栏上会出现iOS 11黑色条

Swift 按下view controller时,导航栏上会出现iOS 11黑色条,swift,navigationbar,ios11,Swift,Navigationbar,Ios11,我只有在iOS 11中才有这个奇怪的bug,在较低的iOS中,一切正常。 问题在于,每当按下视图控制器时,导航栏顶部都会出现一个黑色空间。是否有其他人遇到过此问题以及如何解决 您可以在iOS 11的搜索栏中添加高度44的约束 if #available(iOS 11.0, *) { searchBar.heightAnchor.constraint(equalToConstant: 44).isActive = true } 具有相同的问题,并通过移除以下一块 查看期间来自父控制器的代

我只有在iOS 11中才有这个奇怪的bug,在较低的iOS中,一切正常。 问题在于,每当按下视图控制器时,导航栏顶部都会出现一个黑色空间。是否有其他人遇到过此问题以及如何解决


您可以在iOS 11的搜索栏中添加高度44的约束

if #available(iOS 11.0, *) {
    searchBar.heightAnchor.constraint(equalToConstant: 44).isActive = true
}

具有相同的问题,并通过移除以下一块 查看期间来自父控制器的代码将消失


self.navigationController?.setNavigationBarHidden(true,动画:动画)

问题是,在速度加倍的情况下,视图大小小于导航控制器视图大小

因此,当您在视图中滚动时,视图的帧在内容偏移的变化过程中发生变化,并且它的速度也是原来的两倍。
这可以解释这种行为。 请尝试以下方法来解决此问题

extendedLayoutIncludesOpaqueBars = true

您应该在
UIViewController
UITableViewController
UICollectionViewController

发布代码时添加这一行,从图像中找出某个内容就是dark@mlegg这只是普通的pushViewController。这个错误发生在应用程序的每个地方,而不仅仅是一个地方。此外,在iOS10、iOS9和iOS8中,它工作正常。你能检查一下你的
打印(view.safeAreaInsets)
我检查了它,结果它都是零。你解决过这个问题吗?我也有同样的问题,该解决方案将降低iPhone X中搜索栏的高度。Saviour:)工作完美优秀的解决方案与UICollectionViewController和UISearchController配合使用,效果非常出色。非常感谢!这仍然是最好的办法