问题标签 [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.
ios - iOS:如何检查是否启用了触觉反馈(iOS 设置)
是否可以在 iOS 设置中读取是否激活或停用触觉反馈的选项?
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 改变CoreHaptics
or行为的经验UIFeedbackGenerator
?这是我调试的起点,因为当我在本地模拟通信的所有部分时,触觉反馈工作得很好。
我已经尝试过的
UIFeedbackGenerator
从主/后台线程调用- 使用
UINotificationFeedbackGenerator
代替UIImpactFeedbackGenerator
- 提前打电话
prepare()
。UIFeedbackGenerator
swift - 是否可以在 Swift 中添加多个触觉来一个接一个地播放?
我一直在尝试根据每个视图动画的时间添加多个触觉事件,但是在测试时它只播放第一个触觉并停在那里。我尝试过在线搜索是否可以在短时间内播放多个触觉(Taptic Engine 会准备好多次启动吗?)但找不到任何东西。
任何人都知道这是否可能,如果可以,为什么我的可能不起作用?
我尝试了 2 种不同的方法来添加多个触觉:
这是我的第一种方法的代码,我首先初始化一个新实例,然后在每个动画块中播放相同的触觉,动画之间有 0.25 的延迟:
这是我尝试过的第二种方法,我在每个动画块中初始化并播放新的触觉:
到目前为止,这两种方法都只播放第一个触觉并停在那里。如果这行得通,有什么想法吗?谢谢。
xcode - 切换视图控制器后触觉反馈仍在继续
我有一个使用一些触觉反馈的辅助视图控制器。我在每 14 秒循环一次的预定计时器上触发触觉反馈
此计时器调用触发 2 次触觉反馈命中的函数
(还有更多代码,但它们几乎都与这个块相同,唯一的区别是它只是将标签更改为 focuslabel2-10 并使用计数器来识别下一个要更改的标签是什么。
我感到困惑的是——在视图关闭后——振动(显然还有计时器?)仍在继续。我的手机以相同的间隔振动。我还没有看到任何禁用触觉反馈的代码。我想我可以将它添加到另一个视图控制器来解决这个问题。
ios - UIImpactFeedbackGenerator 在调用 ImpactOccured 后延迟
我正在尝试在 AVCaptureSession 中使用 UIImpactFeedbackGenerator。我有
在会话中允许触觉反馈(仅限 iOS 13)。
但是,反馈总是延迟半秒左右。
这是触发事件的代码
我在我的 viewDidLoad 中设置了 UIImpactHapticFeedback,它也准备了实例。
我相信这与切换相机动作有关,因为在切换相机动作完成之前,触觉反馈不会发生。
有人可以帮我获得即时的触觉反馈吗?