推送视图控制器时,导航栏上出现 iOS 11 黑条
Posted
技术标签:
【中文标题】推送视图控制器时,导航栏上出现 iOS 11 黑条【英文标题】:iOS 11 black bar appears on navigation bar when pushing view controller 【发布时间】:2018-03-08 07:25:24 【问题描述】:我只有在 ios 11 中才有这个奇怪的错误,在较低的 iOS 中,一切正常。 问题是每当推送到视图控制器时,导航栏顶部都会出现一个黑色空间。有没有其他人遇到过这个问题以及如何解决?
【问题讨论】:
发布您的代码,从图像中找出一些东西是在黑暗中拍摄 @mlegg 这只是普通的 pushViewController。这个错误发生在应用程序的每个地方,而不仅仅是一个地方。此外,在iOS10、iOS9和iOS8中,它运行良好。 你能检查一下你的print(view.safeAreaInsets)
我查了一下,全是零。
你解决过这个问题吗?我有同样的问题
【参考方案1】:
问题在于,在双倍速度的情况下,您的视图尺寸小于导航控制器视图尺寸。
因此,当您滚动浏览视图的框架时,内容偏移量会发生变化,并且速度也会加倍。 这可以解释这种行为。 请尝试以下解决问题。
extendedLayoutIncludesOpaqueBars = true
您应该在UIViewController
、UITableViewController
或UICollectionViewController
中添加此行
【讨论】:
救世主 :) 完美运行 优秀的解决方案 与 UICollectionViewController 和 UISearchController 一起工作就像一个魅力。非常感谢! 这仍然是最好的方法【参考方案2】:您可以在 iOS 11 的搜索栏中添加高度 44 的约束。
if #available(iOS 11.0, *)
searchBar.heightAnchor.constraint(equalToConstant: 44).isActive = true
【讨论】:
这个解决方案会降低 iPhone X 中搜索栏的高度。【参考方案3】:遇到了同样的问题并通过删除以下部分来解决它 viewWillDisappear 期间来自父控制器的代码
self.navigationController?.setNavigationBarHidden(true, animated: animated)
【讨论】:
以上是关于推送视图控制器时,导航栏上出现 iOS 11 黑条的主要内容,如果未能解决你的问题,请参考以下文章