ios - iPhone X 主页指示器行为

标签 ios swift view iphone-x

我正在尝试模拟 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/

相关文章:

ios - 如何检测 WatchKit 语音转文本输入的语言?

objective-c - 使用 memcpy 和 malloc 导致数据流损坏

objective-c - 数组复制使应用程序崩溃

mysql - 如何使用 MySQL View 或过程模拟 Explode() 函数

view - Plone 人 4 : Create New Template View

ios - imagePickerController 选择照片时出错

swift - 解码 RealmSwift 类中的可选对象列表

swift - 何时/如何在 Swift 中对 UITableView 的 Realm 子 <List> 属性进行排序

ios - 带有多个图像和缩放的 ScrollView

php - Mysql (MariaDB) 每次查询与从 View 读取?