iPhone X 主页指示灯行为

Posted

技术标签:

【中文标题】iPhone X 主页指示灯行为【英文标题】:iPhone X home indicator behavior 【发布时间】:2018-01-02 04:15:10 【问题描述】:

我试图在 iPhone X 上模拟 home 指示器的行为,但不知道如何。在某些应用程序中,主页指示灯变暗,您必须滑动它才能激活正常行为。我在控制器中找到了一个隐藏指示器的选项,但这不是我想要的。例如,在 *** Royale 和 *** of Clans 中,home 指示灯会变暗,然后当你向上滑动它时,指示灯会变亮,如果你再次这样做,它会激活“home”。使用我发现的 API 隐藏指标只会让它表现得很奇怪。

这是我正在使用的 API,但它不像我在其他应用中看到的那样工作。启用自动隐藏后,指示器将消失,直到您滑动并立即调用主页操作。这不好,因为目的是防止无意中滑动到主屏幕:

override func prefersHomeIndicatorAutoHidden() -> Bool 
    return true

我更喜欢的行为是让指示器变暗,然后在您向上滑动(但不回家)时激活(变亮),然后如果您再次向上滑动以触发回家。这种行为在 Supercell 应用程序中是不变的,但也许它不是内置行为。

为了查看差异,您可以查看其中一个 Supercell 应用程序(在 iPhone X 上),然后查看仅具有属性集的应用程序。

【问题讨论】:

请说得更具体一点。包括您尝试过的内容。再次,要具体。让它成为我们可以复制的东西。是的,再具体一点。 该属性是我唯一能找到尝试的东西,所以这就是整个故事。我不认为我可以更好地描述这种行为而不是多余的。描述它的唯一方法是举一个例子——我见过其他人,但目前找不到。 也许你应该是多余的?不要试图听起来很滑稽,但我们可以做些什么来重现您的问题? 我正在尝试将相关行为的简短屏幕截图附加到问题中,但我不太清楚如何。有什么建议么?我是否将它们上传到 Dropbox,然后以某种方式链接?我可以做图片,但不能做视频。 在非常努力地(重新)阅读您的问题之后,有两个想法。 (1) 小心“使用 API”——确保它不是会导致 Apple 拒绝应用程序的私有 API。 (2) 它确实听起来像有应用程序 - 游戏 - 可以做你想做的事。也许他们“重新创建”了主页指示器?我的专业领域/经验 UI 方面是 UIKit,自动布局和安全区域,显然比更改主页指示器的行为更“标准”。我还想知道这些应用程序是否有资源来执行此操作,而您可能没有?祝你好运! (我的意思是真诚的。) 【参考方案1】:

我对这个问题进行了更多研究,终于在这篇文章中找到了答案:iPhone X: Dealing with Home Indicator

强调这里(我将.top 更改为.bottom,因为那是home 指示器所在的位置):

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge 
  return .top

这样做是推迟 home 操作,直到用户执行一次手势来激活 home 控件,然后第二次调用 home。既然我发现了这个,我(讽刺地)可能不会使用它。我可能会在底部留出足够的额外空间。我的问题不在于手势,而在于覆盖我内容的指示器(可能需要更新 UI,但我现在没有时间)。

希望其他人会发现这很有用,因为这种行为很酷但很难发现。

【讨论】:

这是完美的。在用户点击屏幕之前,我看到的所有其他内容都只是隐藏它。这非常适合游戏。

以上是关于iPhone X 主页指示灯行为的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone X 的主页指示器下方扩展底视图颜色?

UITableview 与 iPhone X 上的主页指示器合并

ios Iphone X 仅在从底部拖动时显示主页指示器

自定义 UIToolbar 太靠近 iPhone X 上的主页指示器

iPhone X - 设置主页指示器周围区域的颜色

iPhone-X - 如何强制用户滑动两次主页指示器进入主屏幕