首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS 9中的Taptic

iOS 9中的Taptic
EN

Stack Overflow用户
提问于 2015-09-11 23:20:16
回答 4查看 10.3K关注 0票数 25

你能在iPhone 6s上使用iOS 9中的taptic引擎吗?WatchOS2和OS X都可以使用触觉引擎,所以我认为iOS 9也会使用触觉引擎,但我找不到任何用于它的API。

EN

回答 4

Stack Overflow用户

发布于 2016-03-31 05:41:01

耶,我有反向工程的内部UIKit的东西,我找到了另一种(简单得多)的方式来驱动反馈通过TapticEngine!我们可以只使用AudioToolbox框架和几个神奇的常量。

代码语言:javascript
运行
复制
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)

希望这能有所帮助!

票数 50
EN

Stack Overflow用户

发布于 2015-09-28 06:33:41

iOS 9和iOS 9.1中目前没有公共可用的API。

免责声明:有一种方法可以直接与Taptic引擎交互,但有一个私有方法。您不应该在App Store应用程序中使用它。

但是,如果您更热衷于实验,那么您可以发现iOS 9中提供了一个新的私有类:_UITapticEngine。你可以找到它的头here。为此,在UIDevice类上有一个名为_tapticEngine的新属性。请参阅UIDevice here的完整标题。您可以继续导入这些头文件,或者只使用NSSelectorFromString函数和performSelector:方法来访问taptic引擎:

代码语言:javascript
运行
复制
id tapticEngine = [[UIDevice currentDevice] performSelector:NSSelectorFromString(@"_tapticEngine") withObject:nil];
[tapticEngine performSelector:NSSelectorFromString(@"actuateFeedback:") withObject:@(1001)]; // Peek
[tapticEngine performSelector:NSSelectorFromString(@"endUsingFeedback:") withObject:@(1002)]; // Pop

这将激活特定手势的taptic引擎,尽管Peek和Pop感觉与我相似。如果您指定任何其他常量,它将默认为振动。

我已经在GitHub上组合了一个快速测试存储库,其中包括一个使用taptic引擎的与Swift兼容的应用程序接口:

代码语言:javascript
运行
复制
UIDevice.currentDevice().tapticEngine().actuateFeedback(UITapticEngineFeedbackPeek)

使用的风险自负!

我还写了一个更长的blog post来解释这一点。

票数 18
EN

Stack Overflow用户

发布于 2016-09-19 01:47:31

在iOS 10中,有一个名为UIFeedbackGenerator的新API。有关更多详细信息,请参阅此post。目前,它只能在iPhone 7上运行。

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

https://stackoverflow.com/questions/32526868

复制
相关文章

相似问题

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