首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得类似于SpriteKit中的peek或pop的3d触摸应用图标触觉反馈

如何获得类似于SpriteKit中的peek或pop的3d触摸应用图标触觉反馈
EN

Stack Overflow用户
提问于 2016-11-08 00:54:22
回答 4查看 751关注 0票数 4

通常,我希望获得在SpriteKit游戏中强制按下(偷看/弹出)图标时产生的触觉反馈。目前,我正在通过以下方式使用3d触摸

代码语言:javascript
复制
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    for touch in touches {
        if touch.force > CGFloat(6.66) {
        shootOut ()
        }
    }
}

我希望触觉反馈(类似于窥视或弹出)在if touch.force > CGFloat(6.66)条件满足时发生。如何做到这一点?

EN

回答 4

Stack Overflow用户

发布于 2016-11-08 03:14:16

偷看/弹出触觉反馈可以用iOS 10中的UIPreviewInteraction实现。(关于这一点的docs相当不完整,但他们也在WWDC16 video中谈到了这一点。)这个类是iOS 10中的新类,但在iPhone 6s和iPhone 7上都可以使用。

然而,关于窥视/弹出触觉反馈的想法是,它应该绑定到一个在概念上与窥视/弹出类似的UI。(即使这是一个自定义用户界面,不能“免费”获得窥视/弹出触觉。) Just like on Apple Watch,iPhone上的每个触觉都有一个含义,当你将它们用于设计目的时,这些含义会更清晰。(另一方面,使用UIPreviewInteraction意味着系统会自动为您处理触摸力和何时产生触觉之间的关联。)

因此,如果你正在寻找更通用的触觉反馈,在iOS 10中也有一个单独的应用程序接口,它提供了几种不同类型的触觉,可在更广泛的情况下使用。查看UIFeedbackGenerator的文档,尝试一下它提供的选项,也许你会找到一个适合你的游戏。

UIFeedbackGenerator同时需要iOS 10和iPhone 7--它是专门为新设备的第二代Taptic引擎提供的更丰富的触觉信号词汇而设计的,所以它在iPhone 6s上使用时没有任何影响。

票数 2
EN

Stack Overflow用户

发布于 2016-11-08 07:02:59

您正在寻找UIPreviewInteraction和UIPreviewInteractionDelegate。基本上,它是一个用于强制触摸的手势识别器。(我不明白他们为什么不把它当做手势识别器。)我有一个基于力触摸的“游戏”的example,用户使用力触摸弹出“气泡”。这展示了如何测量和响应作为手势的力量。

票数 1
EN

Stack Overflow用户

发布于 2017-02-06 05:45:47

代码语言:javascript
复制
if touch.force > CGFloat(6.66) {

您可能希望使用touch.maximumPossibleForce而不是硬编码常量:

代码语言:javascript
复制
touch.force / touch.maximumPossibleForce

检查强制触摸是否可用也可能是一个好主意:

代码语言:javascript
复制
if(is3dTouchAvailable(traitCollection: self.view!.traitCollection)) {
   //...
}

更多详细信息和代码示例http://www.mikitamanko.com/blog/2017/02/01/swift-how-to-use-3d-touch-introduction/

至于与图标强制触摸完全相同的“效果”,如下所示:

代码语言:javascript
复制
let generator = UIImpactFeedbackGenerator(style: .heavy)
generator.prepare()

generator.impactOccurred()

查看有关检查触觉反馈的支持和回退的更多详细信息:http://www.mikitamanko.com/blog/2017/01/29/haptic-feedback-with-uifeedbackgenerator/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40470412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档