1

我注意到在 iMessage 栏下方放置工具栏很困难,因为生成的视图控制器似乎开始在顶部 iMessage 栏所在的空间中绘制。由于 iPhone 5s 的 iMessage 栏的高度为 44 像素,因此使用距 64 顶部的固定距离不起作用。

然后我意识到这只是呈现视图控制器时的一个问题,并且第一个视图控制器或根视图控制器实际上开始在 iMessage 顶部栏下方呈现。我想知道是否有任何一种方法可以检测高度,或者是否有一种方法可以使生成的视图控制器应用与 iMessage 应用程序的根控制器类似的布局。

这是一些显示问题的截图。请注意工具栏和顶部栏之间的小间隙。这是因为 iPhone 5s 的 iMessage 顶部栏高度较短。

iPhone 5S 显示差距

5s 设备顶部栏和导航栏之间有间隙

在 6s/更大的设备上,工具栏和顶部栏之间没有间隙:

6s 设备,顶部栏和导航栏之间没有间隙

我编写了一个示例应用程序来显示生成的视图控制器开始绘制在与 iMessage 顶部栏相同的位置。

具有 < 10 像素顶部约束的初始/父视图控制器。

显示父控制器开始在图像顶部栏下方呈现的示例应用程序

粉红色按钮上的顶部约束 < 10 像素的子项。

示例应用显示生成的视图控制器开始在与图像顶部栏相同的位置呈现

示例故事板的屏幕截图。

故事板显示 VC 与顶部的距离相似

4

1 回答 1

0

今天我遇到了几乎同样的问题,我从 deeplink 中展示了 ViewController 并弹出了一些导航栏 .. :)

为了解决这个问题,我在 ViewController 中嵌入了 NavigationController,并在 viewWillAppear 中隐藏了导航栏。

self.navigationController?.setNavigationBarHidden(true, animated: true)

希望这会有所帮助。
祝你一切顺利。

于 2017-04-20T19:05:47.050 回答