问题标签 [uifeedbackgenerator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
612 浏览

ios - iOS:如何检查是否启用了触觉反馈(iOS 设置)

是否可以在 iOS 设置中读取是否激活或停用触觉反馈的选项?

0 投票
1 回答
103 浏览

ios - Core Haptics 和 Core Bluetooth 会干扰吗?

设置

我的 iOS 应用程序正在与 BLE 设备通信。作为对此通信中某些事件的响应,我想向用户提供触觉反馈。

为了支持像 iPhone 7 这样的旧手机,我决定使用UIFeedbackGenerator,专门UIImpactFeedbackGenerator用于此目的。

现在,当通过 BLE 接收所述事件时,我调用feedbackGenerator.impactOccurred().

行为

在通话时,不会发生触觉反馈。但是系统仍然会记住这些调用UIFeedbackGenerator

因为,当用户随后与 UI 元素交互时,所有调用都会立即feedbackGenerator.impactOccurred()触发,并且提供触觉反馈作为对该 UI 交互的响应。这让用户感到非常困惑,他们当时并没有预料到触觉反馈。此外,如果随着时间的推移积累了足够多的呼叫,触觉反馈可能会非常强烈。

当这些被遗忘的触觉反馈调用累积到足够多时,系统似乎就超载了。以下日志在控制台中生成了几十次:

CAReportingClient.mm:295:-[CAReportingClient init]_block_invoke:无法与帮助应用程序通信

无论如何,根据苹果文档,这可能是预期的行为UIFeedbackGenerator

请注意,调用这些方法不会直接播放触觉。相反,它会将事件通知系统。然后系统根据设备、应用程序的状态、剩余电池电量和其他因素确定是否播放触觉。

我的问题

您是否有使用 Core Bluetooth 改变CoreHapticsor行为的经验UIFeedbackGenerator?这是我调试的起点,因为当我在本地模拟通信的所有部分时,触觉反馈工作得很好。

我已经尝试过的

  • UIFeedbackGenerator从主/后台线程调用
  • 使用UINotificationFeedbackGenerator代替UIImpactFeedbackGenerator
  • 提前打电话prepare()UIFeedbackGenerator
0 投票
0 回答
87 浏览

swift - 是否可以在 Swift 中添加多个触觉来一个接一个地播放?

我一直在尝试根据每个视图动画的时间添加多个触觉事件,但是在测试时它只播放第一个触觉并停在那里。我尝试过在线搜索是否可以在短时间内播放多个触觉(Taptic Engine 会准备好多次启动吗?)但找不到任何东西。

任何人都知道这是否可能,如果可以,为什么我的可能不起作用?

我尝试了 2 种不同的方法来添加多个触觉:

这是我的第一种方法的代码,我首先初始化一个新实例,然后在每个动画块中播放相同的触觉,动画之间有 0.25 的延迟:

这是我尝试过的第二种方法,我在每个动画块中初始化并播放新的触觉:

到目前为止,这两种方法都只播放第一个触觉并停在那里。如果这行得通,有什么想法吗?谢谢。

0 投票
1 回答
40 浏览

xcode - 切换视图控制器后触觉反馈仍在继续

我有一个使用一些触觉反馈的辅助视图控制器。我在每 14 秒循环一次的预定计时器上触发触觉反馈

此计时器调用触发 2 次触觉反馈命中的函数

(还有更多代码,但它们几乎都与这个块相同,唯一的区别是它只是将标签更改为 focuslabel2-10 并使用计数器来识别下一个要更改的标签是什么。

我感到困惑的是——在视图关闭后——振动(显然还有计时器?)仍在继续。我的手机以相同的间隔振动。我还没有看到任何禁用触觉反馈的代码。我想我可以将它添加到另一个视图控制器来解决这个问题。

0 投票
2 回答
101 浏览

ios - UIImpactFeedbackGenerator 在调用 ImpactOccured 后延迟

我正在尝试在 AVCaptureSession 中使用 UIImpactFeedbackGenerator。我有

在会话中允许触觉反馈(仅限 iOS 13)。

但是,反馈总是延迟半秒左右。

这是触发事件的代码

我在我的 viewDidLoad 中设置了 UIImpactHapticFeedback,它也准备了实例。

我相信这与切换相机动作有关,因为在切换相机动作完成之前,触觉反馈不会发生。

有人可以帮我获得即时的触觉反馈吗?