Xcode项目设置是否阻止iPhone X型号底部的TabBar?

时间:2019-04-23 18:20:16

标签: ios iphone xcode iphone-x

我有一个老项目,现在已经投入使用了大约4年了-该项目经历了许多XCode版本从6升级到10(我现在使用的XCode 10.2.1和12.2) SDK)。我遇到的主要问题是它利用Tab View Controller来切换标签,并且无论我做什么,我都无法使标签栏正确显示在iPhone X家族设备的底部:

为了尝试最终缩小问题的范围,我基本上是暂时“替换”了项目中的所有代码和情节提要项,以查看任何内容是否会将标签栏移动到应该的位置(如果我只是使用标签栏控制器创建一个空白的新项目,则该标签栏确实会出现在应有的位置)。我创建了一个测试情节提要,其中只有一个Tab Bar Controller进入了一个导航控制器(没有加入任何约束)。没有附加的viewController代码。我已将应用程序委托替换为“空白”应用程序委托,因此基本上没有多余的代码或约束。而且我仍然可以移动选项卡栏:

iphone xs simulator

这是在模拟器和设备上发生的,并且没有代码或情节提要设置正在执行此操作(在新项目中进行相同的设置会将选项卡栏放在正确的位置)。

我环顾了“构建设置”和其他可能错过的属性,以查看几年前是否约束了可能会影响此效果的东西,但没有看到任何东西。

在项目设置中我应该寻找什么吗?

我不想在一个新项目中重建该项目-有许多链接的库,证书,cocoapods,情节提要项,而且我知道尝试将所有内容放回原处是可怕的。

我的部署目标设置为iOS 11,设备:iPhone,基本SDK:iOS

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

这通常是由于没有正确的iPhone X启动映像引起的。解决此问题的最简单方法是告诉应用程序目标不要使用启动映像(来自应用程序捆绑包或资产目录),而要使用 LaunchScreen.storyboard 。 (如果没有,则制作一个;请确保将其设置为启动屏幕情节提要,方法是单击“用作启动屏幕”,并将目标配置为指向它。检查一个普通的新项目,以了解我的意思。)您可能不希望长期保留这种方式,但至少它将允许您的应用在所有设备上以正确的大小启动。