问题标签 [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 - 在 iPhone 7 和 UIFeedbackGenerator 中,哪些系统操作会执行哪些类型的触感反馈?
(这个问题主要适用于我们这些开发 iPhone 应用程序但没有使用 iPhone 7 的人。)
我想将 iPhone 7 提供的新触觉反馈整合到我的应用程序中,并且我想确保我对它的使用与 iOS 在系统级别上使用它们的方式正确一致。没有设备我无法测试这个。
Apple 提供了描述不同类型反馈的文档:https ://developer.apple.com/ios/human-interface-guidelines/interaction/feedback/即“通知”、“影响”或“选择”。
例如,在 Mail.app 中,当您滑动单元格以将其归档时,它会提供触觉反馈。Mail.app 使用上述三个(及其相应的“变体”)中的哪一个?我猜是“选择”,但可能是错误的。
下拉通知中心或控制中心以及任何其他您可以提供参考的奖励积分,但 Mail.app 中的手势将是一个很棒的开始。
ios - UIFeedbackGenerator 对象创建在 iOS 10.0 上崩溃
有人遇到过这种情况么?特别是在运行 iOS 10.0 的 iPhone 6 上,我收到了关于以下崩溃的一致报告:
它甚至没有被使用,只是创建并导致EXC_BAD_ACCESS
崩溃。文档说,如果设备不支持它,它只会默默地失败。奇怪的是,如果我将支票更改为iOS 10.0.1
它可以正常工作。
难道我做错了什么?
ios - UIFeedback Haptic Engine 调用次数多于激活次数
我正在使用UIFeedback Haptic Engine
with swift 2.3,例如:
和
今天我遇到了这样的新错误,找不到问题。你有什么主意吗?
细节:
ios - UIFeedbackGenerator 和 Airplay 第二屏
我正在构建第二个屏幕应用程序(使用 AirPlay),iOS 设备是第二个屏幕上 UI 的遥控器。我想在按下遥控器上的按钮时使用 UIFeedbackGenerator(分别为 UIImpactFeedbackGenerator)来产生触觉反馈。我的意思是这是一个完美的用例,不是吗?但是当第二个屏幕连接时,就没有更多的反馈了。在我看来,这要么是想要的行为,要么是一个错误。
文档没有说什么:UIFeedbackGenerator 类参考
有人有想法吗?
ios - 如何检查是否支持 Haptic Engine (UIFeedbackGenerator)
我想知道我们如何检查新的 iOS 10 APIUIFeebackGenerator
在当前设备上是否可用。还有一些我们需要检查的东西:
- 设备需要运行 iOS 10.0 或更高版本
- 设备需要是 iPhone 7 或更高版本
- 触觉引擎需要在设置中打开
前两项检查可以使用#available(iOS 10, *)
语句和(hacky)设备检测来实现,但后一项似乎不可检查。
有人知道解决方案吗?或者,也许我们需要为此提交一份 Apple Radar。谢谢!
ios - 使用 UIFeedbackGenerator 或 AudioServicesPlaySystemSound 振动
当我想让 iPhone 振动时,如何确定是使用UIFeedbackGenerator
还是AudioServicesPlaySystemSound
?
新的触觉引擎仅在 iOS10 和 iPhone 7 机型上可用,那么我们如何编写代码,在支持时使用这个新引擎,但在不支持时回退到使用不那么酷AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
?
苹果说不用担心,UIFeedbackGenerator
如果不支持它根本不会做任何事情,但是如果我仍然希望它振动,我看不出这对我有什么帮助,因为它的方法没有任何类型的成功回调。
请注意,调用这些方法不会直接播放触觉。相反,它会将事件通知系统。然后系统根据设备、应用程序的状态、剩余电池电量和其他因素确定是否播放触觉。
例如,目前仅播放触觉反馈:
在支持 Taptic Engine 的设备上(iPhone 7 和 iPhone 7 Plus)。
当应用程序在前台运行时。
启用系统触觉设置时。
作为一般规则,信任系统来确定它是否应该播放反馈。不要检查设备类型或应用状态来有条件地触发反馈。在您决定如何使用反馈后,请始终在适当的事件发生时触发它。系统会忽略它无法满足的任何请求。
swift3 - 在 swift 3 中创建触觉反馈模式
我对 Swift 和编程非常陌生。我正在尝试创建由 UILongPressGestureRecognizer 触发的触觉反馈模式。当用户“长按”屏幕时,我希望手机振动 3 次,每次振动之间有 1 秒的延迟。我尝试使用“睡眠”来完成 1 秒的延迟,但这不起作用。正确执行此操作的最佳方法是什么?
ios - iOS 应用程序因 [UIFeedbackGenerator _autoDeactivate] 而崩溃
我收到了来自 Crashlytics 的以下报告。我不是在给[UIFeedbackGenerator _autoDeactivate]
自己打电话。也许某个图书馆正在这样做。我做了一些研究,但找不到任何有用的信息。有谁知道这个崩溃报告是什么意思?谢谢!
致命异常:NSInternalInconsistencyException
为样式 2 自动停用 <UISelectionFeedbackGenerator: 0x1c012d7a0:prepared=0> 时引发异常:强制停用 <UISelectionFeedbackGenerator: 0x1c012d7a0:prepared=0> 风格未激活的 TurnOn (activationCount = -1) 配置:<_UISelectionFeedbackGeneratorConfiguration: 0x1c0301710: isEnabled=1, activationStyle=2, requiredSupportLevel=0> activationCount: -1, styleActivationCount: -1 引擎: {( <_UIFeedbackHapticEngine: 0x1c40dd180: state=4, numberOfClients=5, prewarmCount=0, _isSuspended=0> )}
这是完整的报告:
ios - 有没有一种快速的方法来确定 iPhone 型号是否比某个型号更新?
我正在尝试应用触觉振动效果。但看起来只有 iPhone 7 或更高版本才支持这个很酷的功能。我已经读过这个线程。
有没有可以用来确定设备是 iPhone 7 还是更新设备的功能?如果我使用 SWITCH 语句,每次 Apple 发布新设备时,我都必须向 App Store 提交更新。因此,该应用程序将在几天内无法在新发布的设备上运行。
编辑:在 iPhone 6 或更低版本上,我会使用正常的振动,以便我需要知道设备是否比 iPhone 7 更新。或者它在 iPhone 6 或更旧的设备上什么也不做。AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
ios - AVHapticPlayer async call finishWithCompletionHandler: (type=3) 30秒后没有得到回复
问题
当用户移动一些图块时,我在我的应用程序中使用触觉反馈。当瓷砖移动得非常快,导致触觉反馈快速触发时,我在 30 秒后在控制台中收到以下警告:
2019-01-20 17:29:04.658240+0000 Loopover[17824:4937487] [反馈] AVHapticPlayer async call finishWithCompletionHandler: (type=3) 30 秒后没有得到回复(在此通知 0 mediaserverd 死亡时间)
触觉反馈是如何触发的?
我正在触发触觉反馈UIImpactFeedbackGenerator
,如下所示:
这是什么意思?
我应该担心这个警告吗?如果我正常移动瓷砖,则不会出现任何问题。
如果有的话,我该怎么办?