ios - 我如何知道 iPad 上何时出现拆分窗口拖动 handle ?

标签 ios ipad autolayout

当应用程序在 iPad 屏幕的三分之一处运行时,其窗口顶部会出现一个小的拖动 handle 。在 iOS 10 中,拖动该 handle 可让您切换在那里打开的应用程序。在 iOS 11 中,您可以使用它将应用程序从占据屏幕的三分之一更改为 float 在屏幕的其余部分。

example of overlapping elents

我的问题:我怎么知道这个句柄何时存在,或者至少知道有什么东西占用了那个空间?我需要在没有 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/

相关文章:

ios - 水平条形图 : how to add X-Bar Axis Labels

ios - NSString 检测数字然后括号

iphone - 检查 iVar 的名称是否与 NSDictionary 键相关

ios - 自动布局宽高比限制

ios - 使用自动布局处理 iPhone X 缺口?

ios - UIImageView 和自动布局

iOS - 使用 insertSubview 时 UITableView 高度自动调整大小不起作用

ios - 从自定义 UITableViewCell 和 UIViewController 传递数据

ios - 如何在iOS中将NSString数据转换为Uiimage View

ios - 在 iPad 上水平滚动时 uiscrollview 滞后