在 iOS 10 中,有一个新的 API 允许开发人员使用 Taptic 引擎 UIFeedbackGenerator。
虽然此 API 在 iOS 10 中可用,但它仅适用于新设备 iPhone 7 和 7 plus。它不适用于包括 6S 或 6S Plus 在内的旧设备,即使是那些有 Taptic 引擎的设备。我猜 7 和 7 plus 上的 Taptic 引擎是不同的更强大的引擎。
我似乎找不到查看设备是否支持使用新 api 的方法。我想在有意义的地方用敲击代码替换一些振动代码。
编辑:
添加 3 个具体的子类用于搜索: UIImpactFeedbackGenerator UINotificationFeedbackGenerator UISelectionFeedbackGenerator
编辑2:
我有一个理论,但没有 iPhone 7 设备来测试它,所以如果你有的话,试一试。UIFeedbackGenerator 有一个名为 prepare() 的方法。当打印出 UIImpactFeedbackGenerator 的实例时,我注意到它打印了一个名为“prepared”的属性,该属性将显示 0。在模拟器或 iPhone 6S 上调用 prepare(),然后打印出实例仍然显示为 0。有人可以调用 prepare () 在 iPhone7 的 UIImpactFeedbackGenerator 实例上,然后将该实例打印到控制台以查看prepared是否设置为1?此值未公开,但可能有一种方法可以在不使用私有 api 的情况下获取此信息。