UIImpactFeedbackGenerator影响发生轻微延迟



我正在使用Apple开发人员文档中描述的UIImpactFeedbackGenerator,但是在我调用impactHappen和您感觉到触觉之间似乎有轻微的延迟 - 可能是十分之一秒或类似。 当我同时播放声音时,这一点尤其明显 - 声音明显先于触觉。

其他人在苹果开发者论坛上写了同样的事情,但没有解决方案。

我初始化UIImpactFeedbackGenerator:

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

立即调用准备,并在影响发生前的几秒钟内重复调用:

[impactFeedbackGen prepare];

然后最后玩触觉,用:

[impactFeedbackGen impactOccurred];

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

思潮?谢谢!

我认为避免

使用UIImpactFeedbackGenerator延迟的诀窍是何时调用prepare

显然,你不能简单地打电话给prepare然后立即触发撞击,因为发动机需要时间来实际准备。

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

可以通过多次调用prepare来扩展准备状态,但是在这里也必须小心,因为在达到某个阈值后,系统会将引擎恢复到空闲状态,并忽略进一步的调用prepare直到触发冲击。

最新更新