我正在尝试模拟 iPhone X 上主页指示器的行为,但不知道如何操作。在某些应用程序中,主页指示灯会变暗,您必须滑动它才能激活正常行为。我在 Controller 中找到了一个隐藏指示器的选项,但这不是我要找的。例如,在 Clash Royale 和 Clash of Clans 中,home 指示灯会变暗,然后当您向上滑动它时,指示灯会变亮,如果您再次向上滑动,它会激活“home”。使用我发现的 API 隐藏指示器真的只会让它表现得很奇怪。
这是我正在使用的 API,但它不像我在其他应用程序中看到的那样工作。启用自动隐藏后,指示器将消失,直到您滑动并立即调用主页操作。这不好,因为目的是防止无意中滑动到主屏幕:
override func prefersHomeIndicatorAutoHidden() -> Bool {
return true
}
我喜欢的行为是指示器变暗,然后在您向上滑动(但不返回主页)时激活(变亮),然后如果您再次向上滑动则触发主页。这种行为在 Supercell 应用程序中是不变的,但它可能不是内置行为。
为了了解差异,您可以查看其中一个 Supercell 应用程序(在 iPhone X 上),并查看仅包含属性集的应用程序。
最佳答案
我进一步研究了这个问题,最后在这篇文章中找到了答案:iPhone X: Dealing with Home Indicator
这里强调(我将 .top
更改为 .bottom
因为这是主页指示器所在的位置):
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return .top
}
它的作用是推迟主页操作,直到用户执行一次手势以激活主页控件,然后再执行一次以调用主页。既然我已经找到了这个,我(具有讽刺意味的是)可能不会使用它。我可能会在底部留下足够的额外空间。我的问题不在于手势,而在于指示器覆盖了我的内容(可能需要更新 UI,但我现在没有时间)。
希望其他人会发现这很有用,因为这种行为很酷但很难发现。
关于ios - iPhone X 主页指示器行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055506/