ios - Xcode 项目设置阻止 TabBar 出现在 iPhone X 型号的底部?

标签 ios iphone xcode iphone-x

我有一个旧项目,我已经断断续续地工作了大约 4 年 - 该项目已经经历了 XCode 版本从 6 到 10 的多次升级(我现在使用 XCode 10.2.1 和 12.2)开发工具包)。我遇到的主要问题是它使用选项卡 View Controller 来切换选项卡,并且无论我做什么,我都无法让选项卡栏正确显示在 iPhone X 系列设备的底部:它看起来比它应该的要高得多。

为了尝试最终缩小问题范围,我基本上暂时“替换”了项目中的所有代码和 Storyboard 项目,以查看是否有任何内容会将选项卡栏移动到应该的位置(如果我只是用标签栏 Controller 创建一个空白的新项目,标签栏就会出现在它应该出现的地方)。我创建了一个测试 Storyboard,其中只有一个 Tab Bar Controller 连接到一个导航 Controller (没有设置任何约束)。它们没有附加任何 viewController 代码。我已将应用程序委托(delegate)替换为“空白”应用程序委托(delegate),因此基本上没有多余的代码或限制。我仍然移动了标签栏:

iphone xs simulator

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

我环顾了build设置和其他我可能错过的属性,看看我几年前是否限制了一些可能会影响这一点的东西,但没有看到任何东西。

我应该在项目设置中查找可以执行此操作的内容吗?

我不想在新项目中重建项目 - 有很多链接库、证书、cocoapods、 Storyboard 项目,我知道尝试将它们全部放回一个片段中会很糟糕。

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

如有任何帮助,我们将不胜感激!

最佳答案

这通常是由于 iPhone X 没有正确的启动图像引起的。解决此问题的最简单方法是告诉应用程序目标不要使用启动图像(来自应用程序包或 Assets 目录),而是使用而是 LaunchScreen.storyboard。 (如果您没有,请制作一个;请务必通过单击“用作启动屏幕”将其设置为启动屏幕 Storyboard,并将目标配置为指向它。检查一个普通的新项目即可明白我的意思。)从长远来看,您可能不想保持这种状态,但至少它可以让您的应用程序在所有设备上启动到正确的大小。

关于ios - Xcode 项目设置阻止 TabBar 出现在 iPhone X 型号的底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55817216/

相关文章:

iphone - 支持 UIKit UIAppearance 协议(protocol)的类的最终列表

ios - 设置UItextview的字体

ios - 如何在ios中知道设备连接到哪个网络主机

iPhone openGLES 性能调优

swift - 如何使用 applicationWillResignActive 调用 View Controller 的函数

xcode - 使用 Swift 在 tableView 中重新排序 Realm.io 数据

swift - 告诉 Carthage 使用 Swift 3.2.2(不是 Swift 4.0)建立依赖关系

ios - 有没有办法查询 HTML5 应用程序缓存?

ios - 当我为 iOS 编译某些东西时,使用了哪些架构?

ios - 未找到 Cocoapods 框架 - 混合 Objective C 和 Swift pod