当应用程序在iPad屏幕的三分之一处运行时,其窗口顶部会有一个小拖动手柄。在iOS 10中,拖动该句柄可以切换应用程序在那里打开的内容。在iOS 11中,您可以使用它将应用程序从屏幕的三分之一更改为浮动屏幕的其余部分。
我的问题:我怎么知道这个句柄何时出现,或者至少知道有什么东西占据了这个空间?我需要在没有conflicting with it的情况下围绕它布置我的UI内容。它doesn't appear to work with iOS 11's Safe Area APIs。
See here示例项目试图将标签放在窗口顶部而不覆盖拖动手柄。在iPad屏幕的三分之一处运行它。
答案 0 :(得分:1)
首先复制雷达。这肯定是应该由安全区魔术处理的。
这里的问题是SpringBoard呈现了句柄,因此您只能应用技巧来猜测它当前是否可见。您可以确定窗口的大小是否正确以及它是否位于屏幕上的正确位置,然后添加一些额外的安全区域插入。这通常是不明智的,原因有几个,例如不知道所有出现句柄的情况,必须考虑从左到右的系统等,但在这种情况下,问题似乎如此令人震惊,我是不确定我是否建议原样离开。
修改强>
还有一个选项是查看UIWindow.safeAreaInsets
是否返回正确的值。 UINavigationController
能够正确推断安全区域,因此隐藏在某处。