UIImpactFeedbackGenerator impactOccurred Slight Delay
UIImpactFeedbackGenerator impactOccurred Slight Delay
我正在按照 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,但不是同时使用。
想法?
谢谢!
我认为使用 UIImpactFeedbackGenerator 避免延迟的诀窍是何时调用 prepare
。
显然你不能简单地调用 prepare
然后立即触发影响,因为引擎需要时间来实际准备。
另一方面,一旦prepare
被调用,taptic engine只会在很短的时间内(大约几秒)保持准备状态,以节省电力。
可以通过多次调用prepare
来延长准备状态,但是在这里你也必须小心,因为在一定的阈值之后,系统会让引擎回到空闲状态,并在触发影响之前忽略对 prepare
的进一步调用。
我正在按照 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,但不是同时使用。
想法? 谢谢!
我认为使用 UIImpactFeedbackGenerator 避免延迟的诀窍是何时调用 prepare
。
显然你不能简单地调用 prepare
然后立即触发影响,因为引擎需要时间来实际准备。
另一方面,一旦prepare
被调用,taptic engine只会在很短的时间内(大约几秒)保持准备状态,以节省电力。
可以通过多次调用prepare
来延长准备状态,但是在这里你也必须小心,因为在一定的阈值之后,系统会让引擎回到空闲状态,并在触发影响之前忽略对 prepare
的进一步调用。