我正在努力将我的应用程序迁移到 iOS 11。为了可重用性,我将我的层次结构分成多个 StoryBoard。在第一个 StoryBoard 中,我有一个自定义容器视图控制器,它承载一个标签栏和一个特殊视图 (MonitoringView)。它嵌入在 UINavigationController 中。我将此控制器嵌入到导航控制器中,因为我希望所有选项卡都具有相同的功能和标题。
在其中一个选项卡中,我想显示一张地图。在 StoryBoard 上,我使用 0 将地图固定到 SuperView,因此我在导航和标签栏下得到它。在这里,我还有一个自定义控件,我将其固定到视图控制器的 SafeArea。
现在当我运行应用程序时,我使用
if #available(iOS 11.0, *) {
controller.additionalSafeAreaInsets = UIEdgeInsetsMake(monitoringView.frame.size.height, 0, tabBar.frame.size.height, 0)
}
在容器控制器中调整子控制器(带有地图的那个)的安全区域插图。
虽然这适用于我固定到安全区域的额外控件,但地图的指南针和法律通知隐藏在 iOS 11 上的导航/标签栏下。在 iOS 10 上,虽然控制在栏下,而通知和指南针距离视图中心很远
我几天来一直在寻找解决方案,并且尝试了很多不同的方法。我真的很绝望,不知道我做错了什么。任何提示都非常感谢。