iOS 10 iPhone 6S播放触觉反馈或使用taptic引擎振动

时间:2016-11-09 08:32:25

标签: ios iphone

Iphone6s是否有tapic引擎,我可以使用名为UIFeedbackGenerator的公共API来访问吗?

3 个答案:

答案 0 :(得分:15)

iPhone7 / 7 +中引入了触觉反馈引擎,您可以通过UIFeedbackGenerator使用它,这是一个例子:

let generator = UIImpactFeedbackGenerator(style: .heavy)
generator.prepare()

generator.impactOccurred()

对于iPhone 6S / 6S,我发现了一种后备,如果你有这个设备,请尝试并描述一下经验:

import AudioToolbox


AudioServicesPlaySystemSound(1519) // Actuate `Peek` feedback (weak boom)
AudioServicesPlaySystemSound(1520) // Actuate `Pop` feedback (strong boom)
AudioServicesPlaySystemSound(1521) // Actuate `Nope` feedback (series of three weak booms)

我试图在这里总结一下我发现的关于触觉反馈的一切: http://www.mikitamanko.com/blog/2017/01/29/haptic-feedback-with-uifeedbackgenerator/

答案 1 :(得分:8)

iPhone 7拥有比iPhone 6更精确,更灵活的Taptic Engine - 您可以使用UIFeedbackGenerator类群来获取iPhone 7支持的更丰富的触觉反馈信号词汇,但这些API无效在iPhone 6s(或其他设备)上。

iPhone 6s仍有Tapic Engine,但它不像新款那样强大 - 它只支持与3D Touch功能相关的触觉信号。但是,可以在您的应用中使用它们:

  • 在您的应用中构建标准的Peek / Pop UI(包括触觉),使用已经执行过的标准视图(如表格和集合视图),在故事板中设置peek / pop segues,和/或采用视图控制器中的UIViewControllerPreviewingUIViewControllerPreviewingDelegate协议。您可以在iOS 9中执行此操作。

  • 提供窥视/弹出手势支持 - 包括随附的触觉反馈 - 没有用户界面或使用您自己的自定义用户界面,请使用UIPreviewInteraction课程及其delegate protocol。这部分需要iOS 10。

有关peek / pop,3D Touch和触觉的更多信息,请参阅WWDC16会话"A Peek at 3D Touch"和Apple的Adopting 3D Touch on iPhone指南。

答案 2 :(得分:-2)

不,目前仅在iPhone 7和7 +上提供了taptic引擎。

  

目前,只有iPhone 7和iPhone 7 Plus中的新Taptic Engine支持这些API。其他设备默默地忽略触觉请求。

https://www.hackingwithswift.com/example-code/uikit/how-to-generate-haptic-feedback-with-uifeedbackgenerator

在iPhone 6s上,您的设备可以调用UIFeedbackGenerator,但由于手机中没有taptic硬件,所以不会发生任何事情。