与父级不同,从 iMessage 应用程序呈现的视图控制器被 iMessage 顶栏覆盖

Posted

技术标签:

【中文标题】与父级不同,从 iMessage 应用程序呈现的视图控制器被 iMessage 顶栏覆盖【英文标题】:View Controller presented from iMessage Application gets covered by iMessage top bar unlike the parent 【发布时间】:2017-04-18 18:04:12 【问题描述】:

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

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

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

iPhone 5S 显示出差距

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

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

具有

粉红色按钮顶部约束

示例故事板的屏幕截图。

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于与父级不同,从 iMessage 应用程序呈现的视图控制器被 iMessage 顶栏覆盖的主要内容,如果未能解决你的问题,请参考以下文章

如何使 div 与父级高度相同(显示为表格单元格)

鼠标滑过,解决ul下 li下a的背景与父级Li不同宽的问题

iMessage 扩展:从不同的目标获取 bundle nil

DLL 如何与父级通信? WCF 是唯一的解决方案吗?

卡片宽度与父级匹配:颤动

如何防止子 QGraphicsItem 与父级一起移动?