UIImpactFeedbackGenerator impactOccurred Slight Delay

时间:2017-03-19 21:25:55

标签: ios objective-c haptic-feedback

我正在使用U in Apple's developer docs所描述的UIImpactFeedbackGenerator,但是当我调用impactOccurred和你感觉触觉时,似乎有一点延迟 - 可能是十分之一秒或类似的。当我同时播放声音时,这一点尤其明显 - 声音明显位于触觉之前。

其他人在Apple Developer Forums中写过同样的事情,但没有解决。

我用以下内容初始化UIImpactFeedbackGenerator:

// Set up impact
UIImpactFeedbackStyle sty = UIImpactFeedbackStyleMedium;
impactFeedbackGen = [[UIImpactFeedbackGenerator alloc] initWithStyle:sty];

立即拨打电话准备,并在影响发生前的几秒钟内反复拨打电话:

[impactFeedbackGen prepare];

然后终于播放了触觉,用:

[impactFeedbackGen impactOccurred];

不确定它是否相关,但我在同一个应用中使用UISelectionFeedbackGenerator,但不能同时使用。

思考? 谢谢!

1 个答案:

答案 0 :(得分:1)

我认为避免UIImpactFeedbackGenerator延迟的诀窍是何时调用prepare

显然你不能简单地调用prepare然后立即触发影响,因为引擎需要时间来实际准备。

另一方面,一旦调用prepare,taptic引擎将只在短时间内(几秒钟)保持准备状态,以节省电力。

可以通过多次调用prepare来扩展准备状态,但是你也必须小心,因为在某个阈值之后,系统会将引擎恢复到空闲状态,并且在触发影响之前,请忽略对prepare的进一步调用。