Iphone6s是否有tapic引擎,我可以使用名为UIFeedbackGenerator
的公共API来访问吗?
答案 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,和/或采用视图控制器中的UIViewControllerPreviewing
和UIViewControllerPreviewingDelegate
协议。您可以在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。其他设备默默地忽略触觉请求。
在iPhone 6s上,您的设备可以调用UIFeedbackGenerator,但由于手机中没有taptic硬件,所以不会发生任何事情。