当应用程序在 iPad 屏幕的三分之一处运行时,其窗口顶部会出现一个小的拖动 handle 。在 iOS 10 中,拖动该 handle 可让您切换在那里打开的应用程序。在 iOS 11 中,您可以使用它将应用程序从占据屏幕的三分之一更改为 float 在屏幕的其余部分。
我的问题:我怎么知道这个句柄何时存在,或者至少知道有什么东西占用了那个空间?我需要在没有 conflicting with it 的情况下围绕它布置我的 UI 内容.它doesn't appear to work with iOS 11's Safe Area APIs .
See here对于试图将标签放在窗口顶部而不覆盖拖动 handle 的示例项目。在 iPad 屏幕的三分之一处运行它。
最佳答案
首先复制雷达。这绝对是安全区魔法应该处理的事情。
这里的问题是handle是由SpringBoard渲染的,只能套路猜测当前是否可见。您可以确定窗口的大小是否正确以及它在屏幕上的位置是否正确,然后添加一些额外的安全区域插图。由于多种原因,这通常是不明智的,例如不知道句柄出现的所有情况,必须考虑从左到右的系统等,但在这种情况下,问题似乎非常严重,我不确定我是否建议保持原样。
编辑
另一种选择是查看 UIWindow.safeAreaInsets
是否返回正确的值。 UINavigationController
能够正确推断出安全区域,所以它就藏在那里。
关于ios - 我如何知道 iPad 上何时出现拆分窗口拖动 handle ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47642818/