ios - 在实际 iPhone 上测试时没有触觉反馈
问题描述
我遵循了Apple关于在我的应用程序中实现触觉功能的指南。我在我的 iPhone 上进行了测试,但是当我触发触觉动作(点击 tableView 控制器上的按钮)时,什么也没有发生。这是我的实现:
if supportHaptics {//line 95
do {
let player = try hapticsEngine.makePlayer(with: hapticPattern)
hapticsEngine.start(completionHandler:nil)
try player.start(atTime: 0)//line 99
hapticsEngine.stop(completionHandler: nil)
} catch {
print(error)
}
}
我很确定我的hapticsEngine
andhapticPattern
是有效的并且没有错误,因为如果我在第 95 行设置中断并逐行遍历do
块,我的手机会在第99行之后振动。只是在我删除断点并运行之后该应用程序,我的 iPhone 不发送任何触觉反馈。
我错过了什么?任何事情都会有所帮助。
解决方案
您将 start 与完成处理程序参数一起使用,这意味着触觉引擎将异步工作,即在将来的某个时间工作,然后停止它。在逐步调试中它可以工作,因为触觉引擎有足够的时间来执行。如果您想要同步(即立即启动),您必须调用 start() (= 没有与参数不同的参数 = nil)来自 Apple doc:
调用触觉引擎的 start(completionHandler:) 进行异步启动,或调用 start() 同步(立即)启动引擎。
推荐阅读
- amazon-web-services - 无服务器中基于资源的策略
- assembly - 如何使用 SWORD PTR(汇编语言)打印负整数
- javascript - 在图像的单击坐标上动态添加文本框
- javascript - react-native-video 如何在视口中重置视频和自动播放?
- python - 当我在每次循环迭代开始时将列表分配回空时,列表如何附加数据
- sql - SQLAlchemy - 查询现有项目的关联表
- android - 将应用程序 apk 和短信发送到 WhatsApp 的代码
- python - 标准缩放它在 pyspark 数据帧中花费了太多时间
- flutter - 如何使用 dio 和 file_picker 包上传多个文件服务器,
- angular - 护照无法在未定义角度全局的情况下运行